On 7/24/19 12:28 PM, Niall Douglas via Boost wrote:
On 18/07/2019 23:43, Michael Caisse via Boost wrote:
Please download the beta, give it a try, and report any problems you encounter.
Testing Outcome on MSVC, I get:
C:\Users\ned\Downloads\boost_1_71_0_b1_rc1\boost_1_71_0\libs\outcome\test>..\..\..\b2 toolset=msvc-14.0 Performing configuration checks
- default address-model : 32-bit - default architecture : x86 - !BOOST_COMP_GNUC : no - BOOST_COMP_GNUC >= 6.0 : no - !BOOST_COMP_CLANG : no - BOOST_COMP_CLANG >= 4.0 : no - Boost.Config Feature Check: cxx14_variable_templates : yes - Boost.Config Feature Check: cxx14_constexpr : yes - !BOOST_COMP_GNUC : no - BOOST_COMP_GNUC >= 6.0 : no - !BOOST_COMP_CLANG : no - BOOST_COMP_CLANG >= 4.0 : no - Boost.Config Feature Check: cxx14_variable_templates : yes - Boost.Config Feature Check: cxx14_constexpr : yes ...found 1 target...
Outcome's Jamfile requires:
project : requirements [ requires cxx14_variable_templates cxx14_constexpr ] [ predef-require "!BOOST_COMP_GNUC" or "BOOST_COMP_GNUC >= 6.0" ] [ predef-require "!BOOST_COMP_CLANG" or "BOOST_COMP_CLANG >= 4.0" ] <define>BOOST_TEST_MODULE=Outcome <library>../../test/build//boost_unit_test_framework ;
So, the fact that !BOOST_COMP_GNUC and !BOOST_COMP_CLANG are false on MSVC is a problem, the tests won't run on MSVC.
Yet Outcome works fine for the developer build, as evidenced by the regression matrix. So this is a problem affecting this release build ONLY.
Thoughts?
I've not used predef-require, but you can't compare versions in dotted notation in C++ preprocessor. Boost.Predef defines version numbers with BOOST_VERSION_NUMBER, so you would compare like this: BOOST_COMP_GNUC >= BOOST_VERSION_NUMBER(6, 0, 0) Also, note that 6.0 is a pre-release version of gcc 6.x. The first release version is 6.1. That said, given that the Boost.Build output above is from MSVC, I'm not sure why both !BOOST_COMP_GNUC and !BOOST_COMP_CLANG are "no".