blob: db6b70007650d50aab3a8c46a69c7fef20819961 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#pragma once
#include "critter-script.hpp"
#include "compat/assert.hpp"
namespace floormat {
template <typename T> script_wrapper<T>::script_wrapper(T* ptr): ptr{ptr} { fm_assert(ptr); }
template <typename T>
script_wrapper<T>::~script_wrapper() noexcept
{
ptr->delete_self();
#ifndef FM_NO_DEBUG
ptr = nullptr;
#endif
}
template <typename T> const T& script_wrapper<T>::operator*() const noexcept { return *ptr; }
template <typename T> T& script_wrapper<T>::operator*() noexcept { return *ptr; }
template <typename T> const T* script_wrapper<T>::operator->() const noexcept { return ptr; }
template <typename T> T* script_wrapper<T>::operator->() noexcept { return ptr; }
} // namespace floormat
|