Releases: veselink1/refl-cpp
Releases · veselink1/refl-cpp
v0.12.4
v0.12.3
v0.12.2
- Much faster
for_each
and(has|get)_(reader|writer)
c197d35 and #60 - Fixed
get_display_name_const
on MSVC #53 (thanks @rpatters1) - Added CMake support #44 (thanks @friendlyanon)
- Moved header file to include/refl.hpp #44 (thanks @friendlyanon)
- Fixed builds on on Apple, with xCode 12.3 and set(CMAKE_CXX_STANDARD 17) #43 (thanks @michaelahughes)
NOTE: This version does not contain any breaking changes at the source level (as is clear by the patch version increment). However, this version adds CMake support and this required the
refl.hpp
source file to be moved to a standard locationinclude/refl.hpp
. If you are consuming refl-cpp as a single-header library, you can continue to do so.
v0.12.1
v0.12.0
- Added
std::complex
support metadata. Disable withREFL_NO_STD_COMPLEX
. - Added
refl::descriptor::get_reader
/get_writer
utilities for getter/setter properties. - Added
refl::trait::index_of
for finding index of type in atype_list
. - Added
refl::descriptor::get_display_name_const
asconst_string
alternative toget_display_name
. - Fixed #33 (by james-conrad)
v0.11.0
- Much improved support for inheritance (#27, #28)
refl::type_descriptor::declared_bases
lists base types declared via thebases<...>
attributerefl::type_descriptor::bases
lists base types declared via thebases<...>
attribute as well as inherited membersrefl::type_descriptor::members
now includes declared and inherited members (when base types are specified viabases<...>
attribute)refl::type_descriptor::declared_members
preserves the old behaviorrefl::attr::bases<...>
types are now validated (viastd::is_base_of
)
- Added
refl::descriptor::get_simple_name
, which strips namespace and template declarations from the type name (std::vector<int>
->vector
) - Added free function equivalents of members of
_descriptor
types for symmetry purposes (and might allow for more optimal implementation in the future) - Added
refl::const_string::find/rfind
for searching chars in const_strings - Added
refl::make_const_string(char)
overload - Added
refl::type_list<T>
specialization which exposestypedef T type
and a synonymrefl::type_tag<T>
refl::trait::concat
now support an arbitrary number oftype_list
s as type arguments- Added
refl::trait::as_tuple
(similar toas_type_list
but forstd::tuple
) - Added
refl::trait::reverse
- Added
refl::util::reflect_types
/refl::util::unreflect_types
to quickly create a list oftype_descriptor
s from a list of types and then back - Introduced support for different types of
std::basic_ostream
inattr::debug
andutil::debug
(up to the user to take advantage of) - Built-in support for
std::string_view
- More type assertions in
descriptor::
utilities - Simplification of some
trait::
types (should lead to better compile-times) - Made unit tests more comprehensive
- Fixed incorrect
refl::util::identity
implementation for rvalues - Fixed static function invocation with
operator()/invoke
- Fixed
refl::util::debug
forstd::tuple
#26 - Deprecated
refl::descriptor::get_bases
in favor ofrefl::descriptor::get_base_types
v0.10.0
- Introduced automatic property name normalization in
get_display_name
for properties with nofriendly_name
. Example:get_display_name(get_foo) -> "foo"
- Added built-in reflection support for
std::string_view
#23 - Fixed: operations on
type_list
do not properly take into account reference qualifiers - Fixed
const_string
constructor in older versions of clang - Fixed
util::filter
results list order (used to be reversed) - Fixed implementation of
reflect
,is_reflectable
,debug
- Improved
runtime::debug
print formatting - Removed filtering by
const_string
utils #21. Suggested workaround: use predicate variants - Removed refl-ht support
- Code cleanup #24, #20