1 The msm-unit-tests-cxxstd20 testsuite sets <cxxstd>20, but unfortunately
2 this setting is prepended relative to the ebuild's setting:
4 x86_64-pc-linux-gnu-g++ -std=c++20 -fvisibility-inlines-hidden
5 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
8 which causes an expected build error:
10 In file included from Back11OrthogonalDeferred3WithPuml.cpp:15:
11 boost/msm/front/puml/puml.hpp: In function 'constexpr auto boost::msm::front::puml::detail::parse_guard_simple(Func)':
12 boost/msm/front/puml/puml.hpp:511:25: error: lambda-expression in unevaluated context only available with
13 '-std=c++20' or '-std=gnu++20' [-Wtemplate-body]
15 Setting -std=c++20 globally for the gcc toolchain lets all tests pass.
17 --- boost_1_90_0/libs/msm/test/Jamfile.v2~
18 +++ boost_1_90_0/libs/msm/test/Jamfile.v2
19 @@ -19,7 +19,7 @@ project
21 <library>/boost/msm//boost_msm
23 - <toolset>gcc:<cxxflags>"-ftemplate-depth-300 -g0"
24 + <toolset>gcc:<cxxflags>"-ftemplate-depth-300 -g0 -std=c++20"
25 <toolset>darwin:<cxxflags>"-ftemplate-depth-300 -g0"
26 <toolset>intel:<cxxflags>"-g0"
27 <toolset>gcc:<optimization>off