ponder
3.2
C++ reflection library
|
#include <ponder/config.hpp>
#include "type.hpp"
#include "detail/typeid.hpp"
Namespaces | |
ponder | |
Root namespace that encapsulates all of Ponder. | |
Macros | |
#define | PONDER_TYPE(...) |
Macro used to register a C++ type to Ponder. More... | |
#define | PONDER_AUTO_TYPE(TYPE, REGISTER_FN) |
Macro used to register a C++ type to Ponder with automatic, on-demand metaclass creation. More... | |
#define | PONDER_TYPE_NONCOPYABLE(TYPE) |
Macro used to register a non-copyable C++ type to Ponder. More... | |
#define | PONDER_AUTO_TYPE_NONCOPYABLE(TYPE, REGISTER_FN) |
Macro used to register a non-copyable C++ type to Ponder with automatic metaclass creation. More... | |
#define | PONDER_POLYMORPHIC() |
Macro used to activate the Ponder RTTI system into a hierarchy of classes. More... | |
#define PONDER_AUTO_TYPE | ( | TYPE, | |
REGISTER_FN | |||
) |
Macro used to register a C++ type to Ponder with automatic, on-demand metaclass creation.
Using this macro rather than PONDER_TYPE() will make Ponder automatically call the provided registration function the first time the metaclass is requested. This is useful when you don't want to have to manually call an "init" function to create your metaclass.
Every type manipulated by Ponder must be registered with PONDER_TYPE(), PONDER_AUTO_TYPE() or their NONCOPYABLE versions.
Data<float,int,int>
. Instead, use PONDER_TYPE().Example:
#define PONDER_AUTO_TYPE_NONCOPYABLE | ( | TYPE, | |
REGISTER_FN | |||
) |
Macro used to register a non-copyable C++ type to Ponder with automatic metaclass creation.
Using this macro rather than PONDER_TYPE_NONCOPYABLE will make Ponder automatically call the provided registration function the first time the metaclass is requested. This is useful when you don't want to have to manually call an "init" function to create your metaclass.
Every type manipulated by Ponder must be registered with PONDER_TYPE(), PONDER_AUTO_TYPE() or their NONCOPYABLE versions.
#define PONDER_POLYMORPHIC | ( | ) |
Macro used to activate the Ponder RTTI system into a hierarchy of classes.
This macro must be inserted in both base and derived classes if you want Ponder to be able to retrieve the dynamic type of polymorphic objects.
Example:
#define PONDER_TYPE | ( | ... | ) |
Macro used to register a C++ type to Ponder.
Every type manipulated by Ponder must be registered with PONDER_TYPE(), PONDER_AUTO_TYPE() or their NONCOPYABLE versions.
Example:
Data<float,int,int>
.#define PONDER_TYPE_NONCOPYABLE | ( | TYPE | ) |
Macro used to register a non-copyable C++ type to Ponder.
Disabled copy and assignment cannot be detected at compile-time, thus users have to explicitly tell Ponder when a type is not copyable/assignable. Objects of a non-copyable class can be modified through their metaproperties, but they can't be written with a single call to replace to whole object.
Every type manipulated by Ponder must be registered with PONDER_TYPE(), PONDER_AUTO_TYPE() or their NONCOPYABLE versions.
Example: