#ifndef OBJECT_HPP_INCLUDED #define OBJECT_HPP_INCLUDED #include namespace Internal { class Class; class Object { public: void* Obj = nullptr; Object(const void* Obj = nullptr) noexcept; Object(Object&& Obj) noexcept; Object(const Object& Obj) noexcept; Object& operator=(Object&& Obj) noexcept; Object& operator=(const Object& Obj) noexcept; bool operator==(const Object& O) const; bool operator!=(const Object& O) const; operator bool() const; operator void*() const; bool Equals(Object O) const; bool InstanceOf(Class C) const; virtual ~Object(); }; } #endif // OBJECT_HPP_INCLUDED