Go to the documentation of this file.
9 #ifndef BOOST_CLBL_TRTS_DETAIL_CONFIG_HPP
10 #define BOOST_CLBL_TRTS_DETAIL_CONFIG_HPP
12 #include <type_traits>
17 #define BOOST_CLBL_TRTS_EMPTY_
18 #define BOOST_CLBL_TRTS_EMPTY BOOST_CLBL_TRTS_EMPTY_
20 #ifdef __cpp_transactional_memory
21 # define BOOST_CLBL_TRTS_ENABLE_TRANSACTION_SAFE
24 #ifdef __cpp_inline_variables
25 # define BOOST_CLBL_TRAITS_INLINE_VAR inline
27 # define BOOST_CLBL_TRAITS_INLINE_VAR
30 #ifdef __cpp_noexcept_function_type
31 # define BOOST_CLBL_TRTS_ENABLE_NOEXCEPT_TYPES
34 #ifdef BOOST_CLBL_TRTS_ENABLE_TRANSACTION_SAFE
35 # define BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER transaction_safe
37 # define BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER
41 # if defined(__GNUC__)
42 # define BOOST_CLBL_TRTS_GCC
44 # define BOOST_CLBL_TRTS_GCC_AT_LEAST_6_0_0
47 # define BOOST_CLBL_TRTS_GCC_OLDER_THAN_5_0_0
50 # define BOOST_CLBL_TRTS_GCC_AT_LEAST_4_9_2
51 # elif __GNUC__ == 4 && __GNUC_MINOR__ == 9 && __GNUC_PATCHLEVEL__ >= 2
52 # define BOOST_CLBL_TRTS_GCC_AT_LEAST_4_9_2
54 # define BOOST_CLBL_TRTS_GCC_OLDER_THAN_4_9_2
61 # define BOOST_CLBL_TRTS_CLANG_C2
63 # define BOOST_CLBL_TRTS_MSVC
67 #define BOOST_CLBL_TRTS_IX_SEQ(...) ::std::index_sequence< __VA_ARGS__ >
68 #define BOOST_CLBL_TRTS_MAKE_IX_SEQ(...) ::std::make_index_sequence< __VA_ARGS__ >
69 #define BOOST_CLBL_TRTS_DISJUNCTION(...) ::std::disjunction< __VA_ARGS__ >
71 #ifndef __cpp_variable_templates
72 # define BOOST_CLBL_TRTS_DISABLE_VARIABLE_TEMPLATES
75 #ifndef __cpp_lib_logical_traits
79 #ifndef __cpp_lib_integer_sequence
83 #if defined(BOOST_CLBL_TRTS_MSVC) && !defined(BOOST_DISABLE_WIN32)
84 # define BOOST_CLBL_TRTS_DEFAULT_VARARGS_CC __cdecl
85 # define BOOST_CLBL_TRTS_PMF_VARGARGS_CDECL_DEFAULT
87 # define BOOST_CLBL_TRTS_DEFAULT_VARARGS_CC
90 #if (defined(BOOST_CLBL_TRTS_GCC) && !defined(BOOST_CLBL_TRTS_GCC_AT_LEAST_4_9_2)) || defined(__INTEL_COMPILER)
91 # define BOOST_CLBL_TRTS_DISABLE_REFERENCE_QUALIFIERS
92 # define BOOST_CLBL_TRTS_DISABLE_ABOMINABLE_FUNCTIONS
95 #ifdef BOOST_CLBL_TRTS_DISABLE_ABOMINABLE_FUNCTIONS
96 # define BOOST_CLBL_TRTS_ABOMINABLE_CONST BOOST_CLBL_TRTS_EMPTY
97 # define BOOST_CLBL_TRTS_ABOMINABLE_VOLATILE BOOST_CLBL_TRTS_EMPTY
99 # define BOOST_CLBL_TRTS_ABOMINABLE_CONST const
100 # define BOOST_CLBL_TRTS_ABOMINABLE_VOLATILE volatile
103 #ifdef BOOST_CLBL_TRTS_ENABLE_NOEXCEPT_TYPES
104 # define BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER noexcept
106 # define BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER BOOST_CLBL_TRTS_EMPTY