ponder
3.2
C++ reflection library
|
date: 2018-09-08
The API has be refactored internally to address some hacks from V1 when Boost was removed. Some of the API has been simplified and removed.
When we construct a UserObject we can use a reference or a pointer. A reference will copy the object, and a pointer will make reference to the object. This is important because if you modify the copied object, the change will be lost when the UserObject is destroyed. This may not be the behaviour that you want.
See ponder::Type.
See ponder::UserData.
Note, in Ponder 3.0 we only have XML serialisation support.
This was a simplification of the API. Similar functionality might be implemented by wrapping a property, perhaps with a lambda function
Tagholder removed. This could now be implemented with Userdata.
Use ponder::classIterator() instead.
Following convention.
Use lambdas instead.
date: 2018-01-22
constexpr
extensions. See Drop support for MSVC 2015.Objects are now registered interally using their typeid
. They were previously registered via a string name, however, if we only have a type we could not always get the metaclass information if the metaclass had been renamed. This was a problem for the object factory. This is now fixed. There is also a mapping of string name to typeid
so that you can rename metaclasses, however, you must always use the new name. This fixes issue #108.
Ponder requires full C++14 support. MSVC 2015 lacks this as it does not support N3652: "Relaxing constraints on constexpr functions constexpr member functions and implicit const". We could work around this but time is limited and it is just a complication when the latest compilers all support it.
date: 2020-10-10