Support for C++14 shared_mutex header

This commit is contained in:
Edward Diener
2015-06-09 08:32:28 -04:00
parent d14f46f77b
commit 3fa00f8adb
12 changed files with 82 additions and 3 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -219,6 +219,11 @@
// Although <regex> 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)

View File

@ -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"

View File

@ -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__)

View File

@ -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

View File

@ -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"

View File

@ -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)

View File

@ -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"

View File

@ -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 <shared_mutex> unavailable
// DESCRIPTION: The standard library does not supply C++0y header <shared_mutex>
#include <shared_mutex>
namespace boost_no_cxx14_hdr_shared_mutex {
int test()
{
using std::shared_mutex;
using std::shared_timed_mutex;
return 0;
}
}