From 3fa00f8adbe0dae08ed0cc497f885d31b6a6bea9 Mon Sep 17 00:00:00 2001 From: Edward Diener Date: Tue, 9 Jun 2015 08:32:28 -0400 Subject: [PATCH 01/10] Support for C++14 shared_mutex header --- include/boost/config/compiler/pathscale.hpp | 4 ++++ include/boost/config/compiler/pgi.hpp | 4 ++++ include/boost/config/stdlib/dinkumware.hpp | 15 +++++++++++++ include/boost/config/stdlib/libcomo.hpp | 4 ++++ include/boost/config/stdlib/libstdcpp3.hpp | 8 +++++++ include/boost/config/stdlib/modena.hpp | 4 ++++ include/boost/config/stdlib/msl.hpp | 4 ++++ include/boost/config/stdlib/roguewave.hpp | 3 +++ include/boost/config/stdlib/sgi.hpp | 7 +++--- include/boost/config/stdlib/stlport.hpp | 4 ++++ include/boost/config/stdlib/vacpp.hpp | 4 ++++ test/boost_no_cxx14_hdr_shared_mutex.ipp | 24 +++++++++++++++++++++ 12 files changed, 82 insertions(+), 3 deletions(-) create mode 100644 test/boost_no_cxx14_hdr_shared_mutex.ipp diff --git a/include/boost/config/compiler/pathscale.hpp b/include/boost/config/compiler/pathscale.hpp index 7c211c45..83410733 100644 --- a/include/boost/config/compiler/pathscale.hpp +++ b/include/boost/config/compiler/pathscale.hpp @@ -83,6 +83,10 @@ # define BOOST_NO_CXX11_REF_QUALIFIERS # define BOOST_NO_CXX11_FINAL +// C++0y headers not yet implemented +// +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX + // C++ 14: #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) # define BOOST_NO_CXX14_AGGREGATE_NSDMI diff --git a/include/boost/config/compiler/pgi.hpp b/include/boost/config/compiler/pgi.hpp index e5605c9e..9e1991f2 100644 --- a/include/boost/config/compiler/pgi.hpp +++ b/include/boost/config/compiler/pgi.hpp @@ -121,6 +121,10 @@ #define BOOST_NO_CXX11_REF_QUALIFIERS #define BOOST_NO_CXX11_FINAL +// C++0y headers not yet implemented +// +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX + // C++ 14: #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) # define BOOST_NO_CXX14_AGGREGATE_NSDMI diff --git a/include/boost/config/stdlib/dinkumware.hpp b/include/boost/config/stdlib/dinkumware.hpp index 404e6863..ebd5226e 100644 --- a/include/boost/config/stdlib/dinkumware.hpp +++ b/include/boost/config/stdlib/dinkumware.hpp @@ -147,6 +147,21 @@ # define BOOST_NO_CXX11_STD_ALIGN #endif +// C++0y headers not yet implemented +// +// I haven't been able to find any information +// about what version of Dinkumware supports C++14. +// The Dinkumware website says that they now support +// C++14 but they give no further information about +// their standard library. So I will mark the shared_mutex +// header as unsupported until someone finds a version +// of a compiler that uses the Dinkumware standard library +// and they can see that shared_ptr is distributed in that +// version and they can see the value of _CPPLIB_VER in rhat +// version's yvals.h header file. +// +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX + #if defined(BOOST_INTEL) && (BOOST_INTEL <= 1400) // Intel's compiler can't handle this header yet: # define BOOST_NO_CXX11_HDR_ATOMIC diff --git a/include/boost/config/stdlib/libcomo.hpp b/include/boost/config/stdlib/libcomo.hpp index 5aacfb2a..ad63f86a 100644 --- a/include/boost/config/stdlib/libcomo.hpp +++ b/include/boost/config/stdlib/libcomo.hpp @@ -62,6 +62,10 @@ # define BOOST_NO_CXX11_STD_ALIGN # define BOOST_NO_CXX11_ADDRESSOF +// C++0y headers not yet implemented +// +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX + // // Intrinsic type_traits support. // The SGI STL has it's own __type_traits class, which diff --git a/include/boost/config/stdlib/libstdcpp3.hpp b/include/boost/config/stdlib/libstdcpp3.hpp index 48d9e949..9a27140e 100644 --- a/include/boost/config/stdlib/libstdcpp3.hpp +++ b/include/boost/config/stdlib/libstdcpp3.hpp @@ -219,6 +219,11 @@ // Although is present and compilable against, the actual implementation is not functional // even for the simplest patterns such as "\d" or "[0-9]". This is the case at least in gcc up to 4.8, inclusively. # define BOOST_NO_CXX11_HDR_REGEX +// +// C++0y headers not yet implemented +// +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +// #endif #if defined(__clang_major__) && ((__clang_major__ < 3) || ((__clang_major__ == 3) && (__clang_minor__ < 7))) @@ -254,6 +259,9 @@ # ifndef BOOST_NO_CXX11_HDR_THREAD # define BOOST_NO_CXX11_HDR_THREAD # endif +# ifndef BOOST_NO_CXX14_HDR_SHARED_MUTEX +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +# endif #endif #if (!defined(_GTHREAD_USE_MUTEX_TIMEDLOCK) || (_GTHREAD_USE_MUTEX_TIMEDLOCK == 0)) && !defined(BOOST_NO_CXX11_HDR_MUTEX) diff --git a/include/boost/config/stdlib/modena.hpp b/include/boost/config/stdlib/modena.hpp index f2a83888..2c96bfee 100644 --- a/include/boost/config/stdlib/modena.hpp +++ b/include/boost/config/stdlib/modena.hpp @@ -51,6 +51,10 @@ # define BOOST_NO_CXX11_STD_ALIGN # define BOOST_NO_CXX11_ADDRESSOF +// C++0y headers not yet implemented +// +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX + #define BOOST_STDLIB "Modena C++ standard library" diff --git a/include/boost/config/stdlib/msl.hpp b/include/boost/config/stdlib/msl.hpp index b8f43a12..c7af2f7f 100644 --- a/include/boost/config/stdlib/msl.hpp +++ b/include/boost/config/stdlib/msl.hpp @@ -75,6 +75,10 @@ # define BOOST_NO_CXX11_STD_ALIGN # define BOOST_NO_CXX11_ADDRESSOF +// C++0y headers not yet implemented +// +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX + #define BOOST_STDLIB "Metrowerks Standard Library version " BOOST_STRINGIZE(__MSL_CPP__) diff --git a/include/boost/config/stdlib/roguewave.hpp b/include/boost/config/stdlib/roguewave.hpp index 2b4e8636..2c348c3a 100644 --- a/include/boost/config/stdlib/roguewave.hpp +++ b/include/boost/config/stdlib/roguewave.hpp @@ -187,3 +187,6 @@ # define BOOST_NO_CXX11_STD_ALIGN # define BOOST_NO_CXX11_ADDRESSOF +// C++0y headers not yet implemented +// +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX \ No newline at end of file diff --git a/include/boost/config/stdlib/sgi.hpp b/include/boost/config/stdlib/sgi.hpp index bda77c22..4992bd05 100644 --- a/include/boost/config/stdlib/sgi.hpp +++ b/include/boost/config/stdlib/sgi.hpp @@ -145,7 +145,8 @@ # define BOOST_NO_CXX11_STD_ALIGN # define BOOST_NO_CXX11_ADDRESSOF -#define BOOST_STDLIB "SGI standard library" - - +// C++0y headers not yet implemented +// +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#define BOOST_STDLIB "SGI standard library" \ No newline at end of file diff --git a/include/boost/config/stdlib/stlport.hpp b/include/boost/config/stdlib/stlport.hpp index fd5d3a5a..e34f3864 100644 --- a/include/boost/config/stdlib/stlport.hpp +++ b/include/boost/config/stdlib/stlport.hpp @@ -235,6 +235,10 @@ namespace boost { using std::min; using std::max; } # define BOOST_NO_CXX11_STD_ALIGN # define BOOST_NO_CXX11_ADDRESSOF +// C++0y headers not yet implemented +// +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX + #define BOOST_STDLIB "STLPort standard library version " BOOST_STRINGIZE(__SGI_STL_PORT) diff --git a/include/boost/config/stdlib/vacpp.hpp b/include/boost/config/stdlib/vacpp.hpp index a58ec1c5..82589b84 100644 --- a/include/boost/config/stdlib/vacpp.hpp +++ b/include/boost/config/stdlib/vacpp.hpp @@ -51,6 +51,10 @@ # define BOOST_NO_CXX11_STD_ALIGN # define BOOST_NO_CXX11_ADDRESSOF +// C++0y headers not yet implemented +// +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX + #define BOOST_STDLIB "Visual Age default standard library" diff --git a/test/boost_no_cxx14_hdr_shared_mutex.ipp b/test/boost_no_cxx14_hdr_shared_mutex.ipp new file mode 100644 index 00000000..7cac6fcc --- /dev/null +++ b/test/boost_no_cxx14_hdr_shared_mutex.ipp @@ -0,0 +1,24 @@ +// (C) Copyright Edward Diener 2015 + +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See http://www.boost.org/libs/config for more information. + +// MACRO: BOOST_NO_CXX14_HDR_SHARED_MUTEX +// TITLE: C++0y header unavailable +// DESCRIPTION: The standard library does not supply C++0y header + +#include + +namespace boost_no_cxx14_hdr_shared_mutex { + +int test() +{ + using std::shared_mutex; + using std::shared_timed_mutex; + return 0; +} + +} From ae443e33fae788d98ccc5f57f68626ca84401034 Mon Sep 17 00:00:00 2001 From: Edward Diener Date: Tue, 9 Jun 2015 22:43:10 -0400 Subject: [PATCH 02/10] Updated for shared_mutex header --- include/boost/config/stdlib/libcpp.hpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/include/boost/config/stdlib/libcpp.hpp b/include/boost/config/stdlib/libcpp.hpp index eee2d75d..6fdf12bb 100644 --- a/include/boost/config/stdlib/libcpp.hpp +++ b/include/boost/config/stdlib/libcpp.hpp @@ -67,4 +67,12 @@ // libc++ uses a non-standard messages_base #define BOOST_NO_STD_MESSAGES +#if defined(__has_include) && !__has_include() +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#elif defined(__clang__) && (__clang_major__ < 3 || (__clang_major__ == 3 && __clang_minor__ < 4)) +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#elif __cplusplus < 201402 +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif + // --- end --- From 4f80398754c9af90e6dfe3f01c45655933684c38 Mon Sep 17 00:00:00 2001 From: Edward Diener Date: Mon, 15 Jun 2015 09:56:54 -0400 Subject: [PATCH 03/10] Updated using SD-6 --- include/boost/config/stdlib/dinkumware.hpp | 10 ++++++++-- include/boost/config/stdlib/libcomo.hpp | 10 ++++++---- include/boost/config/stdlib/libcpp.hpp | 4 +++- include/boost/config/stdlib/libstdcpp3.hpp | 13 ++++++++----- include/boost/config/stdlib/modena.hpp | 8 ++++++-- include/boost/config/stdlib/msl.hpp | 17 ++++++----------- include/boost/config/stdlib/roguewave.hpp | 8 +++++++- include/boost/config/stdlib/sgi.hpp | 8 ++++++-- include/boost/config/stdlib/stlport.hpp | 8 ++++++-- include/boost/config/stdlib/vacpp.hpp | 8 ++++++-- 10 files changed, 62 insertions(+), 32 deletions(-) diff --git a/include/boost/config/stdlib/dinkumware.hpp b/include/boost/config/stdlib/dinkumware.hpp index ebd5226e..39f9faae 100644 --- a/include/boost/config/stdlib/dinkumware.hpp +++ b/include/boost/config/stdlib/dinkumware.hpp @@ -153,14 +153,20 @@ // about what version of Dinkumware supports C++14. // The Dinkumware website says that they now support // C++14 but they give no further information about -// their standard library. So I will mark the shared_mutex -// header as unsupported until someone finds a version +// their standard library. So I will use SD-6 or mark it +// as unsupported until someone finds a version // of a compiler that uses the Dinkumware standard library // and they can see that shared_ptr is distributed in that // version and they can see the value of _CPPLIB_VER in rhat // version's yvals.h header file. // +#if defined(__has_include) +#if !__has_include() # define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif +#else +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif #if defined(BOOST_INTEL) && (BOOST_INTEL <= 1400) // Intel's compiler can't handle this header yet: diff --git a/include/boost/config/stdlib/libcomo.hpp b/include/boost/config/stdlib/libcomo.hpp index ad63f86a..b193022e 100644 --- a/include/boost/config/stdlib/libcomo.hpp +++ b/include/boost/config/stdlib/libcomo.hpp @@ -62,9 +62,13 @@ # define BOOST_NO_CXX11_STD_ALIGN # define BOOST_NO_CXX11_ADDRESSOF -// C++0y headers not yet implemented -// +#if defined(__has_include) +#if !__has_include() # define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif +#else +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif // // Intrinsic type_traits support. @@ -75,5 +79,3 @@ #define BOOST_HAS_SGI_TYPE_TRAITS #define BOOST_STDLIB "Comeau standard library " BOOST_STRINGIZE(__LIBCOMO_VERSION__) - - diff --git a/include/boost/config/stdlib/libcpp.hpp b/include/boost/config/stdlib/libcpp.hpp index 6fdf12bb..289f2315 100644 --- a/include/boost/config/stdlib/libcpp.hpp +++ b/include/boost/config/stdlib/libcpp.hpp @@ -67,8 +67,10 @@ // libc++ uses a non-standard messages_base #define BOOST_NO_STD_MESSAGES -#if defined(__has_include) && !__has_include() +#if defined(__has_include) +#if !__has_include() # define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif #elif defined(__clang__) && (__clang_major__ < 3 || (__clang_major__ == 3 && __clang_minor__ < 4)) # define BOOST_NO_CXX14_HDR_SHARED_MUTEX #elif __cplusplus < 201402 diff --git a/include/boost/config/stdlib/libstdcpp3.hpp b/include/boost/config/stdlib/libstdcpp3.hpp index 9a27140e..fc79c94c 100644 --- a/include/boost/config/stdlib/libstdcpp3.hpp +++ b/include/boost/config/stdlib/libstdcpp3.hpp @@ -219,11 +219,6 @@ // Although is present and compilable against, the actual implementation is not functional // even for the simplest patterns such as "\d" or "[0-9]". This is the case at least in gcc up to 4.8, inclusively. # define BOOST_NO_CXX11_HDR_REGEX -// -// C++0y headers not yet implemented -// -# define BOOST_NO_CXX14_HDR_SHARED_MUTEX -// #endif #if defined(__clang_major__) && ((__clang_major__ < 3) || ((__clang_major__ == 3) && (__clang_minor__ < 7))) @@ -240,6 +235,14 @@ # define BOOST_NO_CXX11_STD_ALIGN #endif +#if defined(__has_include) +#if !__has_include() +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif +#elif (BOOST_LIBSTDCXX_VERSION < 40900) || !defined(BOOST_LIBSTDCXX11) +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif + // // Headers not present on Solaris with the Oracle compiler: #if defined(__SUNPRO_CC) diff --git a/include/boost/config/stdlib/modena.hpp b/include/boost/config/stdlib/modena.hpp index 2c96bfee..7f4d2e4b 100644 --- a/include/boost/config/stdlib/modena.hpp +++ b/include/boost/config/stdlib/modena.hpp @@ -51,9 +51,13 @@ # define BOOST_NO_CXX11_STD_ALIGN # define BOOST_NO_CXX11_ADDRESSOF -// C++0y headers not yet implemented -// +#if defined(__has_include) +#if !__has_include() # define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif +#else +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif #define BOOST_STDLIB "Modena C++ standard library" diff --git a/include/boost/config/stdlib/msl.hpp b/include/boost/config/stdlib/msl.hpp index c7af2f7f..d1ffb671 100644 --- a/include/boost/config/stdlib/msl.hpp +++ b/include/boost/config/stdlib/msl.hpp @@ -75,17 +75,12 @@ # define BOOST_NO_CXX11_STD_ALIGN # define BOOST_NO_CXX11_ADDRESSOF -// C++0y headers not yet implemented -// +#if defined(__has_include) +#if !__has_include() # define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif +#else +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif #define BOOST_STDLIB "Metrowerks Standard Library version " BOOST_STRINGIZE(__MSL_CPP__) - - - - - - - - - diff --git a/include/boost/config/stdlib/roguewave.hpp b/include/boost/config/stdlib/roguewave.hpp index 2c348c3a..55cf4002 100644 --- a/include/boost/config/stdlib/roguewave.hpp +++ b/include/boost/config/stdlib/roguewave.hpp @@ -189,4 +189,10 @@ // C++0y headers not yet implemented // -# define BOOST_NO_CXX14_HDR_SHARED_MUTEX \ No newline at end of file +#if defined(__has_include) +#if !__has_include() +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif +#else +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif diff --git a/include/boost/config/stdlib/sgi.hpp b/include/boost/config/stdlib/sgi.hpp index 4992bd05..f47f2ae0 100644 --- a/include/boost/config/stdlib/sgi.hpp +++ b/include/boost/config/stdlib/sgi.hpp @@ -145,8 +145,12 @@ # define BOOST_NO_CXX11_STD_ALIGN # define BOOST_NO_CXX11_ADDRESSOF -// C++0y headers not yet implemented -// +#if defined(__has_include) +#if !__has_include() # define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif +#else +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif #define BOOST_STDLIB "SGI standard library" \ No newline at end of file diff --git a/include/boost/config/stdlib/stlport.hpp b/include/boost/config/stdlib/stlport.hpp index e34f3864..980c3192 100644 --- a/include/boost/config/stdlib/stlport.hpp +++ b/include/boost/config/stdlib/stlport.hpp @@ -235,9 +235,13 @@ namespace boost { using std::min; using std::max; } # define BOOST_NO_CXX11_STD_ALIGN # define BOOST_NO_CXX11_ADDRESSOF -// C++0y headers not yet implemented -// +#if defined(__has_include) +#if !__has_include() # define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif +#else +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif #define BOOST_STDLIB "STLPort standard library version " BOOST_STRINGIZE(__SGI_STL_PORT) diff --git a/include/boost/config/stdlib/vacpp.hpp b/include/boost/config/stdlib/vacpp.hpp index 82589b84..0debab4a 100644 --- a/include/boost/config/stdlib/vacpp.hpp +++ b/include/boost/config/stdlib/vacpp.hpp @@ -51,9 +51,13 @@ # define BOOST_NO_CXX11_STD_ALIGN # define BOOST_NO_CXX11_ADDRESSOF -// C++0y headers not yet implemented -// +#if defined(__has_include) +#if !__has_include() # define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif +#else +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif #define BOOST_STDLIB "Visual Age default standard library" From b351a9a1ed681517aa8d96b6a25a889ca35ba9d1 Mon Sep 17 00:00:00 2001 From: Edward Diener Date: Mon, 15 Jun 2015 10:00:02 -0400 Subject: [PATCH 04/10] Updated example checking SD-6 macro --- test/boost_no_cxx14_hdr_shared_mutex.ipp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/test/boost_no_cxx14_hdr_shared_mutex.ipp b/test/boost_no_cxx14_hdr_shared_mutex.ipp index 7cac6fcc..cb0ee206 100644 --- a/test/boost_no_cxx14_hdr_shared_mutex.ipp +++ b/test/boost_no_cxx14_hdr_shared_mutex.ipp @@ -16,8 +16,11 @@ namespace boost_no_cxx14_hdr_shared_mutex { int test() { - using std::shared_mutex; +#if defined(__cpp_lib_shared_timed_mutex) && __cpp_lib_shared_timed_mutex == 201402 using std::shared_timed_mutex; +#else + using std::shared_mutex; +#endif return 0; } From 3ca81f10958ecd34716b63476d27016b96e2efe3 Mon Sep 17 00:00:00 2001 From: Edward Diener Date: Sat, 27 Jun 2015 12:32:59 -0400 Subject: [PATCH 05/10] Addition of BOOST_NO_CXX14_HDR_SHARED_MUTEX tests --- checks/Jamfile.v2 | 9 ++++-- checks/test_case.cpp | 6 +++- doc/macro_reference.qbk | 1 + test/all/Jamfile.v2 | 5 +++- test/config_info.cpp | 2 ++ test/config_test.cpp | 12 +++++++- test/no_cxx14_hdr_shared_mutex_fail.cpp | 37 +++++++++++++++++++++++++ test/no_cxx14_hdr_shared_mutex_pass.cpp | 37 +++++++++++++++++++++++++ 8 files changed, 103 insertions(+), 6 deletions(-) create mode 100644 test/no_cxx14_hdr_shared_mutex_fail.cpp create mode 100644 test/no_cxx14_hdr_shared_mutex_pass.cpp diff --git a/checks/Jamfile.v2 b/checks/Jamfile.v2 index 9c9d61e5..21b55d6b 100644 --- a/checks/Jamfile.v2 +++ b/checks/Jamfile.v2 @@ -1,6 +1,6 @@ # # *** DO NOT EDIT THIS FILE BY HAND *** -# This file was automatically generated on Mon Oct 13 13:09:13 2014 +# This file was automatically generated on Fri Jun 26 21:48:00 2015 # by libs/config/tools/generate.cpp # Copyright John Maddock. # Use, modification and distribution are subject to the @@ -336,11 +336,14 @@ run-simple test_case.cpp : : : TEST_BOOST_NO_CXX14_DECLTYPE_AUTO : cxx14 alias cxx14_decltype_auto : cxx14_decltype_auto.output ; explicit cxx14_decltype_auto ; run-simple test_case.cpp : : : TEST_BOOST_NO_CXX14_DIGIT_SEPARATORS : cxx14_digit_separators ; -alias cxx14_digit_separator : cxx14_digit_separator.output ; -explicit cxx14_digit_separator ; +alias cxx14_digit_separators : cxx14_digit_separators.output ; +explicit cxx14_digit_separators ; run-simple test_case.cpp : : : TEST_BOOST_NO_CXX14_GENERIC_LAMBDAS : cxx14_generic_lambdas ; alias cxx14_generic_lambdas : cxx14_generic_lambdas.output ; explicit cxx14_generic_lambdas ; +run-simple test_case.cpp : : : TEST_BOOST_NO_CXX14_HDR_SHARED_MUTEX : cxx14_hdr_shared_mutex ; +alias cxx14_hdr_shared_mutex : cxx14_hdr_shared_mutex.output ; +explicit cxx14_hdr_shared_mutex ; run-simple test_case.cpp : : : TEST_BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES : cxx14_initialized_lambda_captures ; alias cxx14_initialized_lambda_captures : cxx14_initialized_lambda_captures.output ; explicit cxx14_initialized_lambda_captures ; diff --git a/checks/test_case.cpp b/checks/test_case.cpp index 9940abec..9eaf99a1 100644 --- a/checks/test_case.cpp +++ b/checks/test_case.cpp @@ -1,4 +1,4 @@ -// This file was automatically generated on Mon Oct 13 13:09:13 2014 +// This file was automatically generated on Fri Jun 26 21:48:00 2015 // by libs/config/tools/generate.cpp // Copyright John Maddock 2002-4. // Use, modification and distribution are subject to the @@ -429,6 +429,10 @@ namespace test = boost_no_cxx14_digit_separators; # include "../test/boost_no_cxx14_generic_lambda.ipp" namespace test = boost_no_cxx14_generic_lambdas; #endif +#ifdef TEST_BOOST_NO_CXX14_HDR_SHARED_MUTEX +# include "../test/boost_no_cxx14_hdr_shared_mutex.ipp" +namespace test = boost_no_cxx14_hdr_shared_mutex; +#endif #ifdef TEST_BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES # include "../test/boost_no_cxx14_lambda_capture.ipp" namespace test = boost_no_cxx14_initialized_lambda_captures; diff --git a/doc/macro_reference.qbk b/doc/macro_reference.qbk index 9851a83d..d1e03d59 100644 --- a/doc/macro_reference.qbk +++ b/doc/macro_reference.qbk @@ -897,6 +897,7 @@ Foo foo = { 0 }; [[`BOOST_NO_CXX14_DECLTYPE_AUTO`][The compiler does not support `decltype(auto)`.]] [[`BOOST_NO_CXX14_DIGIT_SEPARATORS`][The compiler does not support digit separators (e.g. `1'000'000`).]] [[`BOOST_NO_CXX14_GENERIC_LAMBDAS`][The compiler does not support generic lambda (e.g. `[](auto v){ }`).]] +[[`BOOST_NO_CXX14_HDR_SHARED_MUTEX`][The standard library does not provide header .]] [[`BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES`][The compiler does not support initialized lambda capture (e.g. `[foo = 42]{ }`).]] [[`BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION`][The compiler does not support return type deduction for normal functions (e.g. `auto f() { return val; }`).]] [[`BOOST_NO_CXX14_VARIABLE_TEMPLATES`][The compiler does not support variable template (e.g. `template T kibi = T(1024);`).]] diff --git a/test/all/Jamfile.v2 b/test/all/Jamfile.v2 index ece421c9..1bca6e6b 100644 --- a/test/all/Jamfile.v2 +++ b/test/all/Jamfile.v2 @@ -1,7 +1,7 @@ # # Regression test Jamfile for boost configuration setup. # *** DO NOT EDIT THIS FILE BY HAND *** -# This file was automatically generated on Mon Oct 13 13:09:12 2014 +# This file was automatically generated on Fri Jun 26 21:48:00 2015 # by libs/config/tools/generate.cpp # Copyright John Maddock. # Use, modification and distribution are subject to the @@ -337,6 +337,9 @@ test-suite "BOOST_NO_CXX14_DIGIT_SEPARATORS" : test-suite "BOOST_NO_CXX14_GENERIC_LAMBDAS" : [ run ../no_cxx14_generic_lambda_pass.cpp ] [ compile-fail ../no_cxx14_generic_lambda_fail.cpp ] ; +test-suite "BOOST_NO_CXX14_HDR_SHARED_MUTEX" : +[ run ../no_cxx14_hdr_shared_mutex_pass.cpp ] +[ compile-fail ../no_cxx14_hdr_shared_mutex_fail.cpp ] ; test-suite "BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES" : [ run ../no_cxx14_lambda_capture_pass.cpp ] [ compile-fail ../no_cxx14_lambda_capture_fail.cpp ] ; diff --git a/test/config_info.cpp b/test/config_info.cpp index b1fcf516..b466c43c 100644 --- a/test/config_info.cpp +++ b/test/config_info.cpp @@ -1061,6 +1061,7 @@ void print_boost_macros() PRINT_MACRO(BOOST_NO_CXX14_DECLTYPE_AUTO); PRINT_MACRO(BOOST_NO_CXX14_DIGIT_SEPARATORS); PRINT_MACRO(BOOST_NO_CXX14_GENERIC_LAMBDAS); + PRINT_MACRO(BOOST_NO_CXX14_HDR_SHARED_MUTEX); PRINT_MACRO(BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES); PRINT_MACRO(BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION); PRINT_MACRO(BOOST_NO_CXX14_VARIABLE_TEMPLATES); @@ -1123,6 +1124,7 @@ void print_boost_macros() PRINT_MACRO(BOOST_NO_USING_TEMPLATE); PRINT_MACRO(BOOST_NO_VOID_RETURNS); + // END GENERATED BLOCK PRINT_MACRO(BOOST_INTEL); diff --git a/test/config_test.cpp b/test/config_test.cpp index 6d2db3e4..3a3f5ba5 100644 --- a/test/config_test.cpp +++ b/test/config_test.cpp @@ -1,4 +1,4 @@ -// This file was automatically generated on Mon Oct 13 13:09:12 2014 +// This file was automatically generated on Fri Jun 26 21:48:00 2015 // by libs/config/tools/generate.cpp // Copyright John Maddock 2002-4. // Use, modification and distribution are subject to the @@ -287,6 +287,11 @@ namespace boost_no_cxx14_digit_separators = empty_boost; #else namespace boost_no_cxx14_generic_lambdas = empty_boost; #endif +#ifndef BOOST_NO_CXX14_HDR_SHARED_MUTEX +#include "boost_no_cxx14_hdr_shared_mutex.ipp" +#else +namespace boost_no_cxx14_hdr_shared_mutex = empty_boost; +#endif #ifndef BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES #include "boost_no_cxx14_lambda_capture.ipp" #else @@ -1511,6 +1516,11 @@ int main( int, char *[] ) std::cerr << "Failed test for BOOST_NO_CXX14_GENERIC_LAMBDAS at: " << __FILE__ << ":" << __LINE__ << std::endl; ++error_count; } + if(0 != boost_no_cxx14_hdr_shared_mutex::test()) + { + std::cerr << "Failed test for BOOST_NO_CXX14_HDR_SHARED_MUTEX at: " << __FILE__ << ":" << __LINE__ << std::endl; + ++error_count; + } if(0 != boost_no_cxx14_initialized_lambda_captures::test()) { std::cerr << "Failed test for BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES at: " << __FILE__ << ":" << __LINE__ << std::endl; diff --git a/test/no_cxx14_hdr_shared_mutex_fail.cpp b/test/no_cxx14_hdr_shared_mutex_fail.cpp new file mode 100644 index 00000000..11c93bbe --- /dev/null +++ b/test/no_cxx14_hdr_shared_mutex_fail.cpp @@ -0,0 +1,37 @@ +// This file was automatically generated on Fri Jun 26 21:47:59 2015 +// by libs/config/tools/generate.cpp +// Copyright John Maddock 2002-4. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See http://www.boost.org/libs/config for the most recent version.// +// Revision $Id$ +// + + +// Test file for macro BOOST_NO_CXX14_HDR_SHARED_MUTEX +// This file should not compile, if it does then +// BOOST_NO_CXX14_HDR_SHARED_MUTEX should not be defined. +// See file boost_no_cxx14_hdr_shared_mutex.ipp for details + +// Must not have BOOST_ASSERT_CONFIG set; it defeats +// the objective of this file: +#ifdef BOOST_ASSERT_CONFIG +# undef BOOST_ASSERT_CONFIG +#endif + +#include +#include "test.hpp" + +#ifdef BOOST_NO_CXX14_HDR_SHARED_MUTEX +#include "boost_no_cxx14_hdr_shared_mutex.ipp" +#else +#error "this file should not compile" +#endif + +int main( int, char *[] ) +{ + return boost_no_cxx14_hdr_shared_mutex::test(); +} + diff --git a/test/no_cxx14_hdr_shared_mutex_pass.cpp b/test/no_cxx14_hdr_shared_mutex_pass.cpp new file mode 100644 index 00000000..20c5f7bb --- /dev/null +++ b/test/no_cxx14_hdr_shared_mutex_pass.cpp @@ -0,0 +1,37 @@ +// This file was automatically generated on Fri Jun 26 21:47:59 2015 +// by libs/config/tools/generate.cpp +// Copyright John Maddock 2002-4. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See http://www.boost.org/libs/config for the most recent version.// +// Revision $Id$ +// + + +// Test file for macro BOOST_NO_CXX14_HDR_SHARED_MUTEX +// This file should compile, if it does not then +// BOOST_NO_CXX14_HDR_SHARED_MUTEX should be defined. +// See file boost_no_cxx14_hdr_shared_mutex.ipp for details + +// Must not have BOOST_ASSERT_CONFIG set; it defeats +// the objective of this file: +#ifdef BOOST_ASSERT_CONFIG +# undef BOOST_ASSERT_CONFIG +#endif + +#include +#include "test.hpp" + +#ifndef BOOST_NO_CXX14_HDR_SHARED_MUTEX +#include "boost_no_cxx14_hdr_shared_mutex.ipp" +#else +namespace boost_no_cxx14_hdr_shared_mutex = empty_boost; +#endif + +int main( int, char *[] ) +{ + return boost_no_cxx14_hdr_shared_mutex::test(); +} + From 584a711c7a28fedc4d4edbda49205d8d0920877c Mon Sep 17 00:00:00 2001 From: Edward Diener Date: Sat, 27 Jun 2015 21:25:36 -0400 Subject: [PATCH 06/10] Removed comment. --- include/boost/config/stdlib/roguewave.hpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/include/boost/config/stdlib/roguewave.hpp b/include/boost/config/stdlib/roguewave.hpp index 55cf4002..b206ddcc 100644 --- a/include/boost/config/stdlib/roguewave.hpp +++ b/include/boost/config/stdlib/roguewave.hpp @@ -187,8 +187,6 @@ # define BOOST_NO_CXX11_STD_ALIGN # define BOOST_NO_CXX11_ADDRESSOF -// C++0y headers not yet implemented -// #if defined(__has_include) #if !__has_include() # define BOOST_NO_CXX14_HDR_SHARED_MUTEX From 7e6d65e361f2b8bf4dfb8c0c8a92d6f2bf41bbd1 Mon Sep 17 00:00:00 2001 From: Edward Diener Date: Sat, 27 Jun 2015 21:26:00 -0400 Subject: [PATCH 07/10] Use SD-6 if it exists --- include/boost/config/compiler/pathscale.hpp | 8 ++++++-- include/boost/config/compiler/pgi.hpp | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/include/boost/config/compiler/pathscale.hpp b/include/boost/config/compiler/pathscale.hpp index 83410733..44512e86 100644 --- a/include/boost/config/compiler/pathscale.hpp +++ b/include/boost/config/compiler/pathscale.hpp @@ -83,9 +83,13 @@ # define BOOST_NO_CXX11_REF_QUALIFIERS # define BOOST_NO_CXX11_FINAL -// C++0y headers not yet implemented -// +#if defined(__has_include) +#if !__has_include() # define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif +#else +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif // C++ 14: #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) diff --git a/include/boost/config/compiler/pgi.hpp b/include/boost/config/compiler/pgi.hpp index 9e1991f2..8798a721 100644 --- a/include/boost/config/compiler/pgi.hpp +++ b/include/boost/config/compiler/pgi.hpp @@ -121,9 +121,13 @@ #define BOOST_NO_CXX11_REF_QUALIFIERS #define BOOST_NO_CXX11_FINAL -// C++0y headers not yet implemented -// +#if defined(__has_include) +#if !__has_include() # define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif +#else +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif // C++ 14: #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) From ce9a0f17c8f1e02bd5b3c233e2b486b1413e2f70 Mon Sep 17 00:00:00 2001 From: Edward Diener Date: Sun, 28 Jun 2015 13:06:27 -0400 Subject: [PATCH 08/10] Remove direct test for clang version as clang doc says that SD-6 supported fron clang 3.4 and up. --- include/boost/config/stdlib/libcpp.hpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/include/boost/config/stdlib/libcpp.hpp b/include/boost/config/stdlib/libcpp.hpp index 289f2315..5477c99e 100644 --- a/include/boost/config/stdlib/libcpp.hpp +++ b/include/boost/config/stdlib/libcpp.hpp @@ -71,8 +71,6 @@ #if !__has_include() # define BOOST_NO_CXX14_HDR_SHARED_MUTEX #endif -#elif defined(__clang__) && (__clang_major__ < 3 || (__clang_major__ == 3 && __clang_minor__ < 4)) -# define BOOST_NO_CXX14_HDR_SHARED_MUTEX #elif __cplusplus < 201402 # define BOOST_NO_CXX14_HDR_SHARED_MUTEX #endif From da03881bfbc460c59ff1775f7afea68b020d32c6 Mon Sep 17 00:00:00 2001 From: Edward Diener Date: Tue, 30 Jun 2015 23:41:03 -0400 Subject: [PATCH 09/10] Removed BOOST_NO_CXX14_HDR_SHARED_MUTEX logic in compilers. --- include/boost/config/compiler/pathscale.hpp | 8 -------- include/boost/config/compiler/pgi.hpp | 8 -------- 2 files changed, 16 deletions(-) diff --git a/include/boost/config/compiler/pathscale.hpp b/include/boost/config/compiler/pathscale.hpp index 44512e86..7c211c45 100644 --- a/include/boost/config/compiler/pathscale.hpp +++ b/include/boost/config/compiler/pathscale.hpp @@ -83,14 +83,6 @@ # define BOOST_NO_CXX11_REF_QUALIFIERS # define BOOST_NO_CXX11_FINAL -#if defined(__has_include) -#if !__has_include() -# define BOOST_NO_CXX14_HDR_SHARED_MUTEX -#endif -#else -# define BOOST_NO_CXX14_HDR_SHARED_MUTEX -#endif - // C++ 14: #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) # define BOOST_NO_CXX14_AGGREGATE_NSDMI diff --git a/include/boost/config/compiler/pgi.hpp b/include/boost/config/compiler/pgi.hpp index 8798a721..e5605c9e 100644 --- a/include/boost/config/compiler/pgi.hpp +++ b/include/boost/config/compiler/pgi.hpp @@ -121,14 +121,6 @@ #define BOOST_NO_CXX11_REF_QUALIFIERS #define BOOST_NO_CXX11_FINAL -#if defined(__has_include) -#if !__has_include() -# define BOOST_NO_CXX14_HDR_SHARED_MUTEX -#endif -#else -# define BOOST_NO_CXX14_HDR_SHARED_MUTEX -#endif - // C++ 14: #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) # define BOOST_NO_CXX14_AGGREGATE_NSDMI From 2f24d9811f93826f2ac08521ac5105632d5caaad Mon Sep 17 00:00:00 2001 From: Edward Diener Date: Tue, 30 Jun 2015 23:42:05 -0400 Subject: [PATCH 10/10] Added logic when header file found to check for C++14 __cplusplus kevel. --- include/boost/config/stdlib/dinkumware.hpp | 6 +++--- include/boost/config/stdlib/libcomo.hpp | 2 ++ include/boost/config/stdlib/libcpp.hpp | 2 ++ include/boost/config/stdlib/libstdcpp3.hpp | 4 +++- include/boost/config/stdlib/modena.hpp | 2 ++ include/boost/config/stdlib/msl.hpp | 2 ++ include/boost/config/stdlib/roguewave.hpp | 2 ++ include/boost/config/stdlib/sgi.hpp | 2 ++ include/boost/config/stdlib/stlport.hpp | 10 ++-------- include/boost/config/stdlib/vacpp.hpp | 5 ++--- 10 files changed, 22 insertions(+), 15 deletions(-) diff --git a/include/boost/config/stdlib/dinkumware.hpp b/include/boost/config/stdlib/dinkumware.hpp index 39f9faae..5d5ec6b6 100644 --- a/include/boost/config/stdlib/dinkumware.hpp +++ b/include/boost/config/stdlib/dinkumware.hpp @@ -147,8 +147,6 @@ # define BOOST_NO_CXX11_STD_ALIGN #endif -// C++0y headers not yet implemented -// // I haven't been able to find any information // about what version of Dinkumware supports C++14. // The Dinkumware website says that they now support @@ -156,13 +154,15 @@ // their standard library. So I will use SD-6 or mark it // as unsupported until someone finds a version // of a compiler that uses the Dinkumware standard library -// and they can see that shared_ptr is distributed in that +// and they can see that shared_mutex is distributed in that // version and they can see the value of _CPPLIB_VER in rhat // version's yvals.h header file. // #if defined(__has_include) #if !__has_include() # define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#elif __cplusplus < 201402 +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX #endif #else # define BOOST_NO_CXX14_HDR_SHARED_MUTEX diff --git a/include/boost/config/stdlib/libcomo.hpp b/include/boost/config/stdlib/libcomo.hpp index b193022e..941498d0 100644 --- a/include/boost/config/stdlib/libcomo.hpp +++ b/include/boost/config/stdlib/libcomo.hpp @@ -65,6 +65,8 @@ #if defined(__has_include) #if !__has_include() # define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#elif __cplusplus < 201402 +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX #endif #else # define BOOST_NO_CXX14_HDR_SHARED_MUTEX diff --git a/include/boost/config/stdlib/libcpp.hpp b/include/boost/config/stdlib/libcpp.hpp index 5477c99e..ab5d1235 100644 --- a/include/boost/config/stdlib/libcpp.hpp +++ b/include/boost/config/stdlib/libcpp.hpp @@ -70,6 +70,8 @@ #if defined(__has_include) #if !__has_include() # define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#elif __cplusplus <= 201103 +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX #endif #elif __cplusplus < 201402 # define BOOST_NO_CXX14_HDR_SHARED_MUTEX diff --git a/include/boost/config/stdlib/libstdcpp3.hpp b/include/boost/config/stdlib/libstdcpp3.hpp index fc79c94c..3c4eb66c 100644 --- a/include/boost/config/stdlib/libstdcpp3.hpp +++ b/include/boost/config/stdlib/libstdcpp3.hpp @@ -238,8 +238,10 @@ #if defined(__has_include) #if !__has_include() # define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#elif __cplusplus <= 201103 +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX #endif -#elif (BOOST_LIBSTDCXX_VERSION < 40900) || !defined(BOOST_LIBSTDCXX11) +#elif __cplusplus < 201402 || (BOOST_LIBSTDCXX_VERSION < 40900) || !defined(BOOST_LIBSTDCXX11) # define BOOST_NO_CXX14_HDR_SHARED_MUTEX #endif diff --git a/include/boost/config/stdlib/modena.hpp b/include/boost/config/stdlib/modena.hpp index 7f4d2e4b..7a85e0cd 100644 --- a/include/boost/config/stdlib/modena.hpp +++ b/include/boost/config/stdlib/modena.hpp @@ -54,6 +54,8 @@ #if defined(__has_include) #if !__has_include() # define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#elif __cplusplus < 201402 +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX #endif #else # define BOOST_NO_CXX14_HDR_SHARED_MUTEX diff --git a/include/boost/config/stdlib/msl.hpp b/include/boost/config/stdlib/msl.hpp index d1ffb671..dd2775e1 100644 --- a/include/boost/config/stdlib/msl.hpp +++ b/include/boost/config/stdlib/msl.hpp @@ -78,6 +78,8 @@ #if defined(__has_include) #if !__has_include() # define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#elif __cplusplus < 201402 +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX #endif #else # define BOOST_NO_CXX14_HDR_SHARED_MUTEX diff --git a/include/boost/config/stdlib/roguewave.hpp b/include/boost/config/stdlib/roguewave.hpp index b206ddcc..97a2b0b9 100644 --- a/include/boost/config/stdlib/roguewave.hpp +++ b/include/boost/config/stdlib/roguewave.hpp @@ -190,6 +190,8 @@ #if defined(__has_include) #if !__has_include() # define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#elif __cplusplus < 201402 +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX #endif #else # define BOOST_NO_CXX14_HDR_SHARED_MUTEX diff --git a/include/boost/config/stdlib/sgi.hpp b/include/boost/config/stdlib/sgi.hpp index f47f2ae0..c8052717 100644 --- a/include/boost/config/stdlib/sgi.hpp +++ b/include/boost/config/stdlib/sgi.hpp @@ -148,6 +148,8 @@ #if defined(__has_include) #if !__has_include() # define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#elif __cplusplus < 201402 +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX #endif #else # define BOOST_NO_CXX14_HDR_SHARED_MUTEX diff --git a/include/boost/config/stdlib/stlport.hpp b/include/boost/config/stdlib/stlport.hpp index 980c3192..bbc4176c 100644 --- a/include/boost/config/stdlib/stlport.hpp +++ b/include/boost/config/stdlib/stlport.hpp @@ -238,17 +238,11 @@ namespace boost { using std::min; using std::max; } #if defined(__has_include) #if !__has_include() # define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#elif __cplusplus < 201402 +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX #endif #else # define BOOST_NO_CXX14_HDR_SHARED_MUTEX #endif #define BOOST_STDLIB "STLPort standard library version " BOOST_STRINGIZE(__SGI_STL_PORT) - - - - - - - - diff --git a/include/boost/config/stdlib/vacpp.hpp b/include/boost/config/stdlib/vacpp.hpp index 0debab4a..4ccd0d24 100644 --- a/include/boost/config/stdlib/vacpp.hpp +++ b/include/boost/config/stdlib/vacpp.hpp @@ -54,12 +54,11 @@ #if defined(__has_include) #if !__has_include() # define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#elif __cplusplus < 201402 +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX #endif #else # define BOOST_NO_CXX14_HDR_SHARED_MUTEX #endif #define BOOST_STDLIB "Visual Age default standard library" - - -