diff --git a/.travis.yml b/.travis.yml index 842a89f0..b834af88 100644 --- a/.travis.yml +++ b/.travis.yml @@ -555,8 +555,4 @@ install: script: - |- echo "using $TOOLSET : : $COMPILER : -std=$CXXSTD ;" > ~/user-config.jam - - ./b2 libs/fusion/test toolset=$TOOLSET - -notifications: - email: - on_success: always + - ./b2 libs/fusion/test toolset=$TOOLSET define=RUNNING_ON_TRAVIS=1 diff --git a/appveyor.yml b/appveyor.yml index 82c1bedf..ba83a8c1 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -71,4 +71,4 @@ install: build: off test_script: - - b2 libs/fusion/test toolset=%TOOLSET% + - b2 libs/fusion/test toolset=%TOOLSET% define=RUNNING_ON_APPVEYOR=1 diff --git a/meta/explicit-failures-markup.xml b/meta/explicit-failures-markup.xml new file mode 100644 index 00000000..ffed9d81 --- /dev/null +++ b/meta/explicit-failures-markup.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + The compiler doesn't generate defaulted move ctor/assgin thus + perform copy construction/assginment. The `inline` versions + don't provide move ctor/assign to preserve standard layout + constraint. Since that is not documented behaviour, it might + be changed in future release. + + + + diff --git a/test/sequence/define_struct_inline_move.cpp b/test/sequence/define_struct_inline_move.cpp index 13d37931..6cf2d053 100644 --- a/test/sequence/define_struct_inline_move.cpp +++ b/test/sequence/define_struct_inline_move.cpp @@ -51,6 +51,8 @@ int main() BOOST_TEST(y.w.value == 42); } + // Older MSVCs don't generate move ctor by default. +#if !(defined(RUNNING_ON_APPVEYOR) && BOOST_WORKAROUND(BOOST_MSVC, < 1900)) { ns::value x; ns::value y(std::move(x)); // move @@ -68,6 +70,7 @@ int main() BOOST_TEST(x.w.value == 0); BOOST_TEST(y.w.value == 0); } +#endif // !(appveyor && msvc < 14.0) return boost::report_errors(); } diff --git a/test/sequence/define_tpl_struct_inline_move.cpp b/test/sequence/define_tpl_struct_inline_move.cpp index 9917fea2..27be0573 100644 --- a/test/sequence/define_tpl_struct_inline_move.cpp +++ b/test/sequence/define_tpl_struct_inline_move.cpp @@ -51,6 +51,8 @@ int main() BOOST_TEST(y.w.value == 42); } + // Older MSVCs don't generate move ctor by default. +#if !(defined(RUNNING_ON_APPVEYOR) && BOOST_WORKAROUND(BOOST_MSVC, < 1900)) { ns::value x; ns::value y(std::move(x)); // move @@ -68,6 +70,7 @@ int main() BOOST_TEST(x.w.value == 0); BOOST_TEST(y.w.value == 0); } +#endif // !(appveyor && msvc < 14.0) return boost::report_errors(); }