Chris@102: // Copyright (C) 2013 Vicente J. Botet Escriba Chris@102: // Chris@102: // Distributed under the Boost Software License, Version 1.0. (See accompanying Chris@102: // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) Chris@102: // Chris@102: // 2013/10 Vicente J. Botet Escriba Chris@102: // Creation. Chris@102: Chris@102: #ifndef BOOST_CSBL_DEQUE_HPP Chris@102: #define BOOST_CSBL_DEQUE_HPP Chris@102: Chris@102: #include Chris@102: // MSVC has some trouble instantiating a non_copyable type Chris@102: //C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xmemory0(606) : error C2248: 'non_copyable::non_copyable' : cannot access private member declared in class 'non_copyable' Chris@102: // ..\libs\thread\test\sync\mutual_exclusion\queue_views\single_thread_pass.cpp(24) : see declaration of 'non_copyable::non_copyable' Chris@102: // ..\libs\thread\test\sync\mutual_exclusion\queue_views\single_thread_pass.cpp(23) : see declaration of 'non_copyable' Chris@102: // C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xmemory0(605) : while compiling class template member function 'void std::allocator<_Ty>::construct(_Ty *,const _Ty &)' Chris@102: // with Chris@102: // [ Chris@102: // _Ty=non_copyable Chris@102: // ] Chris@102: #if defined BOOST_THREAD_USES_BOOST_DEQUE || defined BOOST_NO_CXX11_RVALUE_REFERENCES || (defined _MSC_VER && _MSC_FULL_VER < 180020827) Chris@102: #ifndef BOOST_THREAD_USES_BOOST_DEQUE Chris@102: #define BOOST_THREAD_USES_BOOST_DEQUE Chris@102: #endif Chris@102: #include Chris@102: #else Chris@102: #include Chris@102: #endif Chris@102: Chris@102: namespace boost Chris@102: { Chris@102: namespace csbl Chris@102: { Chris@102: #if defined BOOST_THREAD_USES_BOOST_DEQUE Chris@102: using ::boost::container::deque; Chris@102: Chris@102: #else Chris@102: using ::std::deque; Chris@102: Chris@102: #endif Chris@102: Chris@102: } Chris@102: } Chris@102: #endif // header