Releases: boostorg/pfr
Releases · boostorg/pfr
2.2.0
Major changes:
-
Field names reflection. Added new constexpr
boost::pfr::get_name<N, T>()
function that returns astd::string_view
with a name of field at indexN
of an aggregateT
. Requires C++20.BOOST_PFR_CORE_NAME_ENABLED
is defined to1
if the functionality is available. Many thanks to Denis Mikhailov, Bela Schaum and X-Ryl669 for the PR PR#129 and implementation ideas. -
for_each_field()
is nowconstexpr
for C++17. Many thanks to Alexander Karatarakis for the PR PR#134.
2.1.0
Major changes:
- Implemented the
boost::pfr::is_implicitly_reflectable
and the machinery for specializing aggregates as reflectable or not, thanks to Denis Mikhailov for the #111. - Implemented
boost::pfr::get
by type of an element in the aggregate. - Implemented the
BOOST_PFR_ENABLED
macro to detect library support for reflection, thanks to Denis Mikhailov for the PR #86. - Workaround for broken C++17 stuctured binding in old compilers, thanks to Denis Mikhailov for the PR #119.
2.0.3
- Added missing
#include <memory>
for inclusion ofstd::addressof
- Fixed -Wzero-length-array warning when dealing with empty aggregates
- Fixed compilation on msvc compilers <= 1920 (thanks to Alexey Romanov aka @alexey-romanov)
- Added basic CMakeLists.txt support (thanks to @pdimov aka Peter Dimov)
- Multiple improvements for docs, including links to https://github.com/apolukhin/pfr_non_boost
- Added misc/strip_boost_namespace.sh script to remove
boost::
andBOOST_
prefixes
2.0.2
- A MurMur Hash based implementation of
hash_combine()
is now used to reduce collisions count and improve quality of boost::pfr::hash_value() - Visual Studio 2017 now supported in C++14 mode (thanks to Denis Mikhailov aka @denzor200)
- Issues found by inspect tool were fixed
- Fixed some warnings, including removal of extra semicolons in include/boost/pfr/detail/fields_count.hpp (fixes #72)
- Added a compile time assert for inherited types (thanks to Denis Mikhailov aka @denzor200)
- Reflection of aggregates with non movable fields is now possible if guaranteed copy elision is on
- Fixed spelling issues
2.0.1
2.0.0
First Boost release of the library. Significant changes since version 1.0.x:
- Removed the Flat reflection
- Removed global_ops.hpp
boost::pfr::ops::operator
* were changed to functions and moved toboost::pfr::
namespace- Big rewrite of docs
- Better testing and improved diagnostics
- Helper script now works with Python2 and Python3