2017-12-25 23:49:48 +00:00
|
|
|
#ifndef OBJECT_HPP_INCLUDED
|
|
|
|
#define OBJECT_HPP_INCLUDED
|
|
|
|
|
2019-06-17 16:44:48 +00:00
|
|
|
#include <string>
|
|
|
|
|
2018-12-27 18:17:09 +00:00
|
|
|
namespace Internal
|
2017-12-25 23:49:48 +00:00
|
|
|
{
|
2018-12-27 18:17:09 +00:00
|
|
|
class Class;
|
|
|
|
class Object
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
void* Obj = nullptr;
|
|
|
|
|
|
|
|
Object(const void* Obj = nullptr);
|
|
|
|
Object(Object&& Obj);
|
|
|
|
Object(const Object& Obj);
|
|
|
|
Object& operator=(Object&& Obj);
|
|
|
|
Object& operator=(const Object& Obj);
|
|
|
|
|
|
|
|
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;
|
2019-06-17 16:44:48 +00:00
|
|
|
|
2018-12-27 18:17:09 +00:00
|
|
|
virtual ~Object();
|
|
|
|
};
|
|
|
|
}
|
2017-12-25 23:49:48 +00:00
|
|
|
|
|
|
|
#endif // OBJECT_HPP_INCLUDED
|