@@ -293,18 +293,28 @@ namespace nonstd {
293
293
#define optional_CPP11_140 (optional_CPP11_OR_GREATER_ || optional_COMPILER_MSVC_VER >= 1900 )
294
294
#define optional_CPP11_141 (optional_CPP11_OR_GREATER_ || optional_COMPILER_MSVC_VER >= 1910 )
295
295
296
- #define optional_CPP11_140_490 ((optional_CPP11_OR_GREATER_ && optional_COMPILER_GNUC_VERSION >= 490 ) || (optional_COMPILER_MSVC_VER >= 1910 ))
297
-
298
296
#define optional_CPP14_000 (optional_CPP14_OR_GREATER)
299
297
#define optional_CPP17_000 (optional_CPP17_OR_GREATER)
300
298
299
+ // gcc >= 4.9, msvc >= vc14.1 (vs17):
300
+ #define optional_CPP11_140_G490 ((optional_CPP11_OR_GREATER_ && optional_COMPILER_GNUC_VERSION >= 490 ) || (optional_COMPILER_MSVC_VER >= 1910 ))
301
+
302
+ // clang >= 3.5, msvc >= vc11 (vs12):
303
+ #define optional_CPP11_110_C350 ( optional_CPP11_110 && !optional_BETWEEN( optional_COMPILER_CLANG_VERSION, 1 , 350 ) )
304
+
305
+ // clang >= 3.5, gcc >= 5.0, msvc >= vc11 (vs12):
306
+ #define optional_CPP11_110_C350_G500 \
307
+ ( optional_CPP11_110 && \
308
+ !( optional_BETWEEN( optional_COMPILER_CLANG_VERSION, 1 , 350 ) \
309
+ || optional_BETWEEN( optional_COMPILER_GNUC_VERSION , 1 , 500 ) ) )
310
+
301
311
// Presence of C++11 language features:
302
312
303
313
#define optional_HAVE_CONSTEXPR_11 optional_CPP11_140
304
314
#define optional_HAVE_IS_DEFAULT optional_CPP11_140
305
315
#define optional_HAVE_NOEXCEPT optional_CPP11_140
306
316
#define optional_HAVE_NULLPTR optional_CPP11_100
307
- #define optional_HAVE_REF_QUALIFIER optional_CPP11_140_490
317
+ #define optional_HAVE_REF_QUALIFIER optional_CPP11_140_G490
308
318
#define optional_HAVE_INITIALIZER_LIST optional_CPP11_140
309
319
310
320
// Presence of C++14 language features:
@@ -324,19 +334,12 @@ namespace nonstd {
324
334
#define optional_HAVE_TR1_TYPE_TRAITS (!! optional_COMPILER_GNUC_VERSION )
325
335
#define optional_HAVE_TR1_ADD_POINTER (!! optional_COMPILER_GNUC_VERSION )
326
336
327
- #define optional_HAVE_IS_ASSIGNABLE optional_CPP11_110
328
- #define optional_HAVE_IS_MOVE_CONSTRUCTIBLE optional_CPP11_110
329
- #define optional_HAVE_IS_NOTHROW_MOVE_ASSIGNABLE optional_CPP11_110
330
- #define optional_HAVE_IS_NOTHROW_MOVE_CONSTRUCTIBLE optional_CPP11_110
331
-
332
- // clang < 3.5, gcc < 5.0, msvc < vc11 (vs12):
333
- #define optional_HAVE_TRIV_CPMV_CONSTRUCTABLE \
334
- ( optional_CPP11_110 && \
335
- !( optional_BETWEEN( optional_COMPILER_CLANG_VERSION, 1 , 350 ) \
336
- || optional_BETWEEN( optional_COMPILER_GNUC_VERSION , 1 , 500 ) ) )
337
-
338
- #define optional_HAVE_IS_TRIVIALLY_COPY_CONSTRUCTIBLE optional_HAVE_TRIV_CPMV_CONSTRUCTABLE
339
- #define optional_HAVE_IS_TRIVIALLY_MOVE_CONSTRUCTIBLE optional_HAVE_TRIV_CPMV_CONSTRUCTABLE
337
+ #define optional_HAVE_IS_ASSIGNABLE optional_CPP11_110_C350
338
+ #define optional_HAVE_IS_MOVE_CONSTRUCTIBLE optional_CPP11_110_C350
339
+ #define optional_HAVE_IS_NOTHROW_MOVE_ASSIGNABLE optional_CPP11_110_C350
340
+ #define optional_HAVE_IS_NOTHROW_MOVE_CONSTRUCTIBLE optional_CPP11_110_C350
341
+ #define optional_HAVE_IS_TRIVIALLY_COPY_CONSTRUCTIBLE optional_CPP11_110_C350_G500
342
+ #define optional_HAVE_IS_TRIVIALLY_MOVE_CONSTRUCTIBLE optional_CPP11_110_C350_G500
340
343
341
344
// C++ feature usage:
342
345
0 commit comments