10 template <
class AInterface>
class Object {
20 Object(AInterface*
const APointer) noexcept;
32 AInterface& operator()(
void) noexcept;
39 const AInterface& operator()(
void) const noexcept;
47 bool Valid(
void) const noexcept;
57 template <class ANewInterface> static
Object<ANewInterface>
Upcast(
Object&& AUpcastable) noexcept;
Template type for wrapping pointers and treating them as objects. Only works with CyberEngine interfa...
bool Valid(void) const noexcept
Checks that the pointer isn't null. Will never be the case unless function says otherwise.
Object(AInterface *const APointer) noexcept
Construct an object.
static Object< ANewInterface > Upcast(Object &&AUpcastable) noexcept
Cast an Object to one of it's base classes.
AInterface * FPointer
The pointer to the managed object.