File indexing completed on 2025-01-18 09:38:15
0001
0002
0003
0004
0005
0006
0007
0008 #ifndef BOOST_HOF_GUARD_CONFIG_HPP
0009 #define BOOST_HOF_GUARD_CONFIG_HPP
0010
0011
0012
0013
0014 #ifndef BOOST_HOF_CHECK_UNPACK_SEQUENCE
0015 #define BOOST_HOF_CHECK_UNPACK_SEQUENCE 1
0016 #endif
0017
0018
0019 #if __cplusplus >= 201606
0020 #define BOOST_HOF_HAS_STD_17 1
0021 #else
0022 #define BOOST_HOF_HAS_STD_17 0
0023 #endif
0024
0025 #if __cplusplus >= 201402
0026 #define BOOST_HOF_HAS_STD_14 1
0027 #else
0028 #define BOOST_HOF_HAS_STD_14 0
0029 #endif
0030
0031 #if __cplusplus >= 201103
0032 #define BOOST_HOF_HAS_STD_11 1
0033 #else
0034 #define BOOST_HOF_HAS_STD_11 0
0035 #endif
0036
0037
0038
0039
0040
0041
0042 #ifndef BOOST_HOF_HAS_EBO
0043 #ifdef __clang__
0044 #define BOOST_HOF_HAS_EBO 1
0045 #else
0046 #define BOOST_HOF_HAS_EBO 0
0047 #endif
0048 #endif
0049
0050
0051
0052 #ifndef BOOST_HOF_NO_EXPRESSION_SFINAE
0053 #ifdef _MSC_VER
0054 #define BOOST_HOF_NO_EXPRESSION_SFINAE 1
0055 #else
0056 #define BOOST_HOF_NO_EXPRESSION_SFINAE 0
0057 #endif
0058 #endif
0059
0060
0061
0062 #ifndef BOOST_HOF_HAS_MANUAL_DEDUCTION
0063 #if (defined(__GNUC__) && !defined (__clang__) && __GNUC__ == 4 && __GNUC_MINOR__ < 8)
0064 #define BOOST_HOF_HAS_MANUAL_DEDUCTION 1
0065 #else
0066 #define BOOST_HOF_HAS_MANUAL_DEDUCTION 0
0067 #endif
0068 #endif
0069
0070
0071 #ifndef BOOST_HOF_HAS_RELAXED_CONSTEXPR
0072 #ifdef __cpp_constexpr
0073 #if __cpp_constexpr >= 201304
0074 #define BOOST_HOF_HAS_RELAXED_CONSTEXPR 1
0075 #else
0076 #define BOOST_HOF_HAS_RELAXED_CONSTEXPR 0
0077 #endif
0078 #else
0079 #define BOOST_HOF_HAS_RELAXED_CONSTEXPR BOOST_HOF_HAS_STD_14
0080 #endif
0081 #endif
0082
0083
0084 #ifndef BOOST_HOF_HAS_GENERIC_LAMBDA
0085 #if defined(__cpp_generic_lambdas) || defined(_MSC_VER)
0086 #define BOOST_HOF_HAS_GENERIC_LAMBDA 1
0087 #else
0088 #define BOOST_HOF_HAS_GENERIC_LAMBDA BOOST_HOF_HAS_STD_14
0089 #endif
0090 #endif
0091
0092
0093 #ifndef BOOST_HOF_HAS_CONSTEXPR_LAMBDA
0094 #if defined(__cpp_constexpr) && __cpp_constexpr >= 201603
0095 #define BOOST_HOF_HAS_CONSTEXPR_LAMBDA 1
0096 #else
0097 #define BOOST_HOF_HAS_CONSTEXPR_LAMBDA BOOST_HOF_HAS_STD_17
0098 #endif
0099 #endif
0100
0101
0102 #ifndef BOOST_HOF_HAS_INLINE_VARIABLES
0103 #if defined(__cpp_inline_variables)
0104 #define BOOST_HOF_HAS_INLINE_VARIABLES 1
0105 #else
0106 #define BOOST_HOF_HAS_INLINE_VARIABLES BOOST_HOF_HAS_STD_17
0107 #endif
0108 #endif
0109
0110
0111
0112 #ifndef BOOST_HOF_HAS_INLINE_LAMBDAS
0113 #define BOOST_HOF_HAS_INLINE_LAMBDAS 0
0114 #endif
0115
0116
0117 #ifndef BOOST_HOF_HAS_VARIABLE_TEMPLATES
0118 #if defined(__clang__) && __clang_major__ == 3 && __clang_minor__ < 5
0119 #define BOOST_HOF_HAS_VARIABLE_TEMPLATES 0
0120 #elif defined(__cpp_variable_templates)
0121 #define BOOST_HOF_HAS_VARIABLE_TEMPLATES 1
0122 #else
0123 #define BOOST_HOF_HAS_VARIABLE_TEMPLATES BOOST_HOF_HAS_STD_14
0124 #endif
0125 #endif
0126
0127
0128 #ifndef BOOST_HOF_NO_CONSTEXPR_VOID
0129 #if BOOST_HOF_HAS_RELAXED_CONSTEXPR
0130 #define BOOST_HOF_NO_CONSTEXPR_VOID 0
0131 #else
0132 #define BOOST_HOF_NO_CONSTEXPR_VOID 1
0133 #endif
0134 #endif
0135
0136
0137 #ifndef BOOST_HOF_HAS_TEMPLATE_ALIAS
0138 #if defined(__GNUC__) && !defined (__clang__) && __GNUC__ == 4 && __GNUC_MINOR__ < 8
0139 #define BOOST_HOF_HAS_TEMPLATE_ALIAS 0
0140 #else
0141 #define BOOST_HOF_HAS_TEMPLATE_ALIAS 1
0142 #endif
0143 #endif
0144
0145
0146
0147 #ifndef BOOST_HOF_NO_ORDERED_BRACE_INIT
0148 #if (defined(__GNUC__) && !defined (__clang__) && __GNUC__ == 4 && __GNUC_MINOR__ < 9) || defined(_MSC_VER)
0149 #define BOOST_HOF_NO_ORDERED_BRACE_INIT 1
0150 #else
0151 #define BOOST_HOF_NO_ORDERED_BRACE_INIT 0
0152 #endif
0153 #endif
0154
0155
0156
0157 #ifndef BOOST_HOF_HAS_MANGLE_OVERLOAD
0158 #if defined(__GNUC__) && !defined (__clang__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
0159 #define BOOST_HOF_HAS_MANGLE_OVERLOAD 0
0160 #else
0161 #define BOOST_HOF_HAS_MANGLE_OVERLOAD 1
0162 #endif
0163 #endif
0164
0165
0166 #ifndef BOOST_HOF_HAS_COMPLETE_DECLTYPE
0167 #if !BOOST_HOF_HAS_MANGLE_OVERLOAD || (defined(__GNUC__) && !defined (__clang__))
0168 #define BOOST_HOF_HAS_COMPLETE_DECLTYPE 0
0169 #else
0170 #define BOOST_HOF_HAS_COMPLETE_DECLTYPE 1
0171 #endif
0172 #endif
0173
0174
0175 #ifndef BOOST_HOF_HAS_NOEXCEPT_DEDUCTION
0176 #if defined(__GNUC__) && !defined (__clang__) && ((__GNUC__ == 4 && __GNUC_MINOR__ < 8) || (__GNUC__ == 7 && __GNUC_MINOR__ == 1))
0177 #define BOOST_HOF_HAS_NOEXCEPT_DEDUCTION 0
0178 #else
0179 #define BOOST_HOF_HAS_NOEXCEPT_DEDUCTION 1
0180 #endif
0181 #endif
0182
0183
0184 #ifndef BOOST_HOF_NO_TYPE_PACK_EXPANSION_IN_TEMPLATE
0185 #if defined(__GNUC__) && !defined (__clang__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
0186 #define BOOST_HOF_NO_TYPE_PACK_EXPANSION_IN_TEMPLATE 1
0187 #else
0188 #define BOOST_HOF_NO_TYPE_PACK_EXPANSION_IN_TEMPLATE 0
0189 #endif
0190 #endif
0191
0192
0193 #ifndef BOOST_HOF_NO_STD_DEFAULT_CONSTRUCTIBLE
0194 #if defined(__GNUC__) && !defined (__clang__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
0195 #define BOOST_HOF_NO_STD_DEFAULT_CONSTRUCTIBLE 1
0196 #else
0197 #define BOOST_HOF_NO_STD_DEFAULT_CONSTRUCTIBLE 0
0198 #endif
0199 #endif
0200
0201 #endif