From a0071b301bd4cde02df66f5cd66aea878aefe310 Mon Sep 17 00:00:00 2001 From: "Vicente J. Botet Escriba" Date: Tue, 8 Jan 2013 22:00:02 +0000 Subject: [PATCH] Thread: Added BOOST_THREAD_NO_CXX11_HDR_TUPLE to wrokarround msvc 10.0 behavior providing without move semantics [SVN r82410] --- include/boost/thread/detail/config.hpp | 9 +++++++-- include/boost/thread/lock_factories.hpp | 4 ++-- .../unique_lock/cons/make_unique_locks_mutex_pass.cpp | 2 +- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/include/boost/thread/detail/config.hpp b/include/boost/thread/detail/config.hpp index 9db44382..3e2a42d2 100644 --- a/include/boost/thread/detail/config.hpp +++ b/include/boost/thread/detail/config.hpp @@ -69,8 +69,13 @@ #if defined BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX || defined BOOST_NO_CXX11_HDR_INITIALIZER_LIST #define BOOST_THREAD_NO_CXX11_HDR_INITIALIZER_LIST -//#elif defined __GNUC__ && (__GNUC__ < 4 || ( __GNUC__ == 4 && __GNUC_MINOR__ <= 6 )) -//#define BOOST_THREAD_NO_CXX11_HDR_INITIALIZER_LIST +#endif + +#if defined(BOOST_NO_CXX11_HDR_TUPLE) || defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +#define BOOST_THREAD_NO_CXX11_HDR_TUPLE +#elif defined _MSC_VER && _MSC_VER <= 1600 +// C++ features supported by VC++ 10 (aka 2010) +#define BOOST_THREAD_NO_CXX11_HDR_TUPLE #endif /// BASIC_THREAD_ID diff --git a/include/boost/thread/lock_factories.hpp b/include/boost/thread/lock_factories.hpp index d8bc6069..367bc30b 100644 --- a/include/boost/thread/lock_factories.hpp +++ b/include/boost/thread/lock_factories.hpp @@ -8,7 +8,7 @@ #include #include -#if ! defined(BOOST_NO_CXX11_HDR_TUPLE) +#if ! defined(BOOST_THREAD_NO_CXX11_HDR_TUPLE) #include // todo change to once Boost.Tuple or Boost.Fusion provides Move semantics. #endif #include @@ -39,7 +39,7 @@ namespace boost { return unique_lock (mtx, try_to_lock); } -#if ! defined(BOOST_NO_CXX11_HDR_TUPLE) && ! defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +#if ! defined(BOOST_THREAD_NO_CXX11_HDR_TUPLE) #if ! defined BOOST_NO_CXX11_VARIADIC_TEMPLATES template diff --git a/test/sync/mutual_exclusion/locks/unique_lock/cons/make_unique_locks_mutex_pass.cpp b/test/sync/mutual_exclusion/locks/unique_lock/cons/make_unique_locks_mutex_pass.cpp index 13da746e..593cffe3 100644 --- a/test/sync/mutual_exclusion/locks/unique_lock/cons/make_unique_locks_mutex_pass.cpp +++ b/test/sync/mutual_exclusion/locks/unique_lock/cons/make_unique_locks_mutex_pass.cpp @@ -15,7 +15,7 @@ #include #include -#if ! defined(BOOST_NO_CXX11_AUTO_DECLARATIONS) && ! defined BOOST_NO_CXX11_HDR_TUPLE && ! defined BOOST_NO_CXX11_RVALUE_REFERENCES +#if ! defined(BOOST_NO_CXX11_AUTO_DECLARATIONS) && ! defined BOOST_THREAD_NO_CXX11_HDR_TUPLE && ! defined BOOST_NO_CXX11_RVALUE_REFERENCES boost::mutex m1; boost::mutex m2;