mirror of
https://github.com/boostorg/unordered.git
synced 2025-07-30 03:17:15 +02:00
Require std::tuple for full C++11 construction
This commit is contained in:
@ -90,34 +90,6 @@
|
|||||||
#define BOOST_UNORDERED_USE_ALLOCATOR_TRAITS 0
|
#define BOOST_UNORDERED_USE_ALLOCATOR_TRAITS 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// BOOST_UNORDERED_CXX11_CONSTRUCTION
|
|
||||||
//
|
|
||||||
// Use C++11 construction, requires variadic arguments, good construct support
|
|
||||||
// in allocator_traits and piecewise construction of std::pair
|
|
||||||
// Otherwise allocators aren't used for construction/destruction
|
|
||||||
|
|
||||||
#if BOOST_UNORDERED_HAVE_PIECEWISE_CONSTRUCT && \
|
|
||||||
!defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
|
||||||
#if BOOST_COMP_SUNPRO && BOOST_LIB_STD_GNU
|
|
||||||
// Sun C++ std::pair piecewise construction doesn't seem to be exception safe.
|
|
||||||
// (At least for Sun C++ 12.5 using libstdc++).
|
|
||||||
#define BOOST_UNORDERED_CXX11_CONSTRUCTION 0
|
|
||||||
#elif BOOST_UNORDERED_USE_ALLOCATOR_TRAITS == 0 && \
|
|
||||||
!defined(BOOST_NO_SFINAE_EXPR)
|
|
||||||
#define BOOST_UNORDERED_CXX11_CONSTRUCTION 1
|
|
||||||
#elif BOOST_UNORDERED_USE_ALLOCATOR_TRAITS == 1
|
|
||||||
#define BOOST_UNORDERED_CXX11_CONSTRUCTION 1
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined(BOOST_UNORDERED_CXX11_CONSTRUCTION)
|
|
||||||
#define BOOST_UNORDERED_CXX11_CONSTRUCTION 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//
|
|
||||||
// Other configuration macros
|
|
||||||
//
|
|
||||||
|
|
||||||
// BOOST_UNORDERED_TUPLE_ARGS
|
// BOOST_UNORDERED_TUPLE_ARGS
|
||||||
//
|
//
|
||||||
// Maximum number of std::tuple members to support, or 0 if std::tuple
|
// Maximum number of std::tuple members to support, or 0 if std::tuple
|
||||||
@ -158,6 +130,30 @@
|
|||||||
#include <tuple>
|
#include <tuple>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// BOOST_UNORDERED_CXX11_CONSTRUCTION
|
||||||
|
//
|
||||||
|
// Use C++11 construction, requires variadic arguments, good construct support
|
||||||
|
// in allocator_traits and piecewise construction of std::pair
|
||||||
|
// Otherwise allocators aren't used for construction/destruction
|
||||||
|
|
||||||
|
#if BOOST_UNORDERED_HAVE_PIECEWISE_CONSTRUCT && \
|
||||||
|
!defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && BOOST_UNORDERED_TUPLE_ARGS
|
||||||
|
#if BOOST_COMP_SUNPRO && BOOST_LIB_STD_GNU
|
||||||
|
// Sun C++ std::pair piecewise construction doesn't seem to be exception safe.
|
||||||
|
// (At least for Sun C++ 12.5 using libstdc++).
|
||||||
|
#define BOOST_UNORDERED_CXX11_CONSTRUCTION 0
|
||||||
|
#elif BOOST_UNORDERED_USE_ALLOCATOR_TRAITS == 0 && \
|
||||||
|
!defined(BOOST_NO_SFINAE_EXPR)
|
||||||
|
#define BOOST_UNORDERED_CXX11_CONSTRUCTION 1
|
||||||
|
#elif BOOST_UNORDERED_USE_ALLOCATOR_TRAITS == 1
|
||||||
|
#define BOOST_UNORDERED_CXX11_CONSTRUCTION 1
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(BOOST_UNORDERED_CXX11_CONSTRUCTION)
|
||||||
|
#define BOOST_UNORDERED_CXX11_CONSTRUCTION 0
|
||||||
|
#endif
|
||||||
|
|
||||||
// BOOST_UNORDERED_SUPPRESS_DEPRECATED
|
// BOOST_UNORDERED_SUPPRESS_DEPRECATED
|
||||||
//
|
//
|
||||||
// Define to stop deprecation attributes
|
// Define to stop deprecation attributes
|
||||||
|
Reference in New Issue
Block a user