2
0
mirror of https://github.com/boostorg/pfr.git synced 2026-01-19 04:22:13 +00:00

52 Commits

Author SHA1 Message Date
Antony Polukhin
228922fdb5 Update copyright years 2026-01-04 11:26:11 +03:00
Antony Polukhin
2e3663d0df Fix CI tests and docs build (#211)
Fixes https://github.com/boostorg/pfr/issues/203
2025-06-19 18:36:45 +03:00
Antony Polukhin
7259e35f71 Minor fixes for the misc/strip_boost_namespace.sh 2025-06-19 17:23:29 +03:00
Antony Polukhin
f223709e42 Prepare for the 2.3 release of pfr_non_boost version 2025-06-19 17:09:37 +03:00
Antony Polukhin
5a48d7456f Rewrite modules following the new recommended Boost practice (#196)
Changes:

1) `#include <boost/pfr...` is now implicitly does `import boost.pfr` if the modules are supported 
2) CI now tests modules on Ubuntu 24.04 with existing runtime tests
3) Renamed module to `boost.pfr`
4) CMakeLists.txt now uses modules for `Boost::pfr` target if modules are supported
5) All the library internals now have unconditional module level linkage. `1)` allows users to mix `#include <boost/pfr...` and `import boost.pfr` in user code without ODR-violations.

Significant differences from https://anarthal.github.io/cppblog/modules3:
* PFR uses a `BOOST_PFR_USE_STD_MODULE` macro for `import std;` / `includes` while building module. This allows to use `boost.pfr` module in C++20 and even without usable  `std` module.
2025-04-16 09:16:09 +03:00
Antony Polukhin
3fe5ce61ee Update copyright years 2025-01-08 20:27:31 +03:00
Antony Polukhin
e1a0832a0e Reflect up to 200 fields by default in c++17 implementation via structured bindings (#181) 2024-09-13 19:15:10 +03:00
Antony Polukhin
60391652fa Initial support for C++20 modules (#177) 2024-08-15 10:59:07 +03:00
Antony Polukhin
e969c57be5 Docs update 2024-01-07 13:14:25 +03:00
Denis Mikhailov
730f40b6b2 Fix typos (#139) 2023-09-19 11:46:52 +03:00
Antony Polukhin
41e87fbadb Do not require Python to run tests 2023-09-17 13:55:47 +03:00
denzor200
0cb5cf2ae7 Fix strip_boost_namespace.sh 2023-09-08 00:49:52 +03:00
denzor200
efd25e9968 review 2023-08-27 02:23:54 +03:00
denzor200
50c9d6f6e7 Fix strip_boost_namespace.sh 2023-08-12 19:28:42 +00:00
Antony Polukhin
551174b58c Update copyright years 2023-01-19 10:03:04 +03:00
Markus F.X.J. Oberhumer
a9a295e4aa Avoid -Wzero-as-null-pointer-constant warnings. 2023-01-11 13:11:45 +01:00
denzor200
633c4bc985 'add_cv_like<T>(arg)' -> 'detail::add_cv_like<T>(arg)' 2023-01-10 00:26:58 +06:00
denzor200
b1af355a49 Workaround for broken C++17 stuctured binding in old compilers 2023-01-09 23:30:41 +06:00
Antony Polukhin
8a8b5bc8d3 update copyright years 2022-01-30 14:55:36 +03:00
Antony Polukhin
4d9294cb1f final polishings for of boost-free version 2021-06-10 18:47:18 +03:00
Antony Polukhin
e75c066ddc freestanding docs anc CI fixes 2021-06-10 18:12:22 +03:00
Antony Polukhin
e51a594dbb fix strip_boost_namespace.sh work if target pathh is missing 2021-06-10 11:42:19 +03:00
Antony Polukhin
444094f20d add helper script to remove boost namespace from the library and smoke-test the result 2021-06-09 21:05:19 +03:00
Antony Polukhin
ed4505ca05 Make the generate_cpp17.py script python version agnostic and add smoke test that the script works (fixes #57) 2020-10-21 14:39:51 +03:00
Andrzej Krzemienski
5a1cc330b9 better error messages 2020-10-19 22:06:48 +02:00
Antony Polukhin
cef16a47a5 fix warnings 2020-10-16 19:11:12 +03:00
Antony Polukhin
4205a2e553 Improve diagnostics for structures with huge amount of fields 2020-08-19 19:45:05 +03:00
Antony Polukhin
16db439e8c More C++20 fixes 2020-07-06 18:28:19 +03:00
Antony Polukhin
c3ccb7a525 Fixes for C++20 2020-07-06 18:07:40 +03:00
Antony Polukhin
63b5f1f791 GCC-10 fixes 2020-07-06 17:17:00 +03:00
Antony Polukhin
74c460fd18 update copyright 2020-01-18 13:52:29 +03:00
Antony Polukhin
8bb5eb2f33 Update copyright 2019-01-06 20:46:45 +03:00
Antony Polukhin
d8cb24b660 Even better note for the #25 2018-09-03 23:04:40 +03:00
Antony Polukhin
09266c929c Better message for #25 2018-09-03 22:56:48 +03:00
Antony Polukhin
aec668962d Document the unions behavior and fix #22 2018-06-12 13:06:37 +03:00
Antony Polukhin
d36729a3ad Make static_assert messages more visible 2018-06-02 00:18:27 +03:00
Antony Polukhin
4a6d8d10c7 More static asserts and tests on unions (#22) 2018-05-31 23:26:15 +03:00
Antony Polukhin
72b69d3288 GCC related fixes and simplifications 2017-10-20 14:26:07 +03:00
Antony Polukhin
8031f575fe Ironed out the lvalues and rvalues in detail namespace. Less template instantiations must happen now 2017-10-18 22:40:54 +03:00
Antony Polukhin
0cf44d634e Reduce instantiations count by dropping some of the rvalue overloads of internal methods; reduce detail stuff used for public functions; reduced includes count 2017-09-06 21:57:22 +03:00
Antony Polukhin
a6d655e064 Simplifications and more work for core14 loophole 2017-09-06 21:51:43 +03:00
Antony Polukhin
62a9e5b758 Tested on a C++17 compatible compiler, fixed a bunch of issues and made all the tests compil and run successfully 2017-05-29 23:24:17 +03:00
Antony Polukhin
191184a422 Use BOOST_PFR_USE_CPP17 macro instead of copypasted check, fix copyright dates, drop unnecessary dependencies in core17_generated.hpp 2017-01-15 10:49:56 +03:00
Antony Polukhin
63a41e0256 Cleanup code and fix hash functor 2016-12-28 22:16:22 +03:00
Antony Polukhin
f4126ca464 Added test case from Lisa Lippincott and started fixing the issue 2016-09-26 20:41:45 +03:00
Antony Polukhin
16e28d3c3c tuned cpp17 generator: the output is even more compact now 2016-07-28 23:45:57 +03:00
Antony Polukhin
452e01ff0b Generator updated, more compact c++17 code produced 2016-07-28 23:24:18 +03:00
Antony Polukhin
9fbb780839 Move more files to better reflect their content and usability (pod_ -> flat_) 2016-07-18 23:54:07 +03:00
Antony Polukhin
135faf692d Move some files and change header names 2016-07-18 23:46:45 +03:00
Antony Polukhin
9ecedfe6ca Better formatting for generated files 2016-07-18 23:42:07 +03:00