pfr
pfr copied to clipboard
std::tuple like methods for user defined types without any macro or boilerplate code
Works both for gcc and msvc, but not clang. https://godbolt.org/z/bcochYz5P ```#include #include #include #include #include #include using Boolean = bool; using Integer = std::int64_t; using Float = double; using String...
I've been trying to understand `is_reflectable`, but I fail to get what to pass as second argument. My case looks like this: ``` template class static_results { static_assert(pfr::is_pfr_reflectable::value, "RowType must...
`detail/fake_object.hpp` emits the following warning under gcc 13.1 (Linux): ``` ./boost/pfr/detail/fake_object.hpp:23:35: error: unknown option after ‘#pragma GCC diagnostic’ kind [-Werror=pragmas] 23 | # pragma GCC diagnostic ignored "-Wundefined-var-template" ``` You...
Compiler: gcc13.1, Linux Boost 1.84 Godbolt: https://godbolt.org/z/xxT1Tsoe7 Description: when `names_as_array` is called on a struct with no fields, `std::array` is returned, rather than `std::array`. This makes generic code more difficult....
I don't know if this is intended behavior, since I couldn't find anything in the docs. I was expecting that this: ``` auto t = pfr::structure_to_tuple(42); ``` Produced a compile-time...
Add a new function `for_each_field_with_name` The goal is to be able to do this: ```C++ struct Toto { int a; char c; }; Toto t {5, 'c'}; auto cb =...
https://github.com/boostorg/pfr/blob/449bf360f7d7a945639710b0fbb670ffde70e772/include/boost/pfr/detail/fake_object.hpp#L52 Minor, but I think this should be `diagnostic pop` instead of `diagnostic push`. Thanks for a great library, btw!
VS2022 does not compile the following code snippet , if any member is a void pointer. Are there any workaround?. I did not check, this behavior with clang or gcc....
this tries to implement the solution in #170, with one change: I saw some "must be aggregate initializable" errors so I added another case depending on `std::is_aggregate_v`