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