@@ -541,8 +541,14 @@ RAPIDJSON_NAMESPACE_END
541
541
// /////////////////////////////////////////////////////////////////////////////
542
542
// C++11 features
543
543
544
+ #ifndef RAPIDJSON_HAS_CXX11
545
+ #define RAPIDJSON_HAS_CXX11 (__cplusplus >= 201103L )
546
+ #endif
547
+
544
548
#ifndef RAPIDJSON_HAS_CXX11_RVALUE_REFS
545
- #if defined(__clang__)
549
+ #if RAPIDJSON_HAS_CXX11
550
+ #define RAPIDJSON_HAS_CXX11_RVALUE_REFS 1
551
+ #elif defined(__clang__)
546
552
#if __has_feature(cxx_rvalue_references) && \
547
553
(defined(_MSC_VER) || defined(_LIBCPP_VERSION) || defined(__GLIBCXX__) && __GLIBCXX__ >= 20080306 )
548
554
#define RAPIDJSON_HAS_CXX11_RVALUE_REFS 1
@@ -560,7 +566,9 @@ RAPIDJSON_NAMESPACE_END
560
566
#endif // RAPIDJSON_HAS_CXX11_RVALUE_REFS
561
567
562
568
#ifndef RAPIDJSON_HAS_CXX11_NOEXCEPT
563
- #if defined(__clang__)
569
+ #if RAPIDJSON_HAS_CXX11
570
+ #define RAPIDJSON_HAS_CXX11_NOEXCEPT 1
571
+ #elif defined(__clang__)
564
572
#define RAPIDJSON_HAS_CXX11_NOEXCEPT __has_feature (cxx_noexcept)
565
573
#elif (defined(RAPIDJSON_GNUC) && (RAPIDJSON_GNUC >= RAPIDJSON_VERSION_CODE(4,6,0)) && defined(__GXX_EXPERIMENTAL_CXX0X__)) || \
566
574
(defined(_MSC_VER) && _MSC_VER >= 1900 ) || \
@@ -570,11 +578,13 @@ RAPIDJSON_NAMESPACE_END
570
578
#define RAPIDJSON_HAS_CXX11_NOEXCEPT 0
571
579
#endif
572
580
#endif
581
+ #ifndef RAPIDJSON_NOEXCEPT
573
582
#if RAPIDJSON_HAS_CXX11_NOEXCEPT
574
583
#define RAPIDJSON_NOEXCEPT noexcept
575
584
#else
576
- #define RAPIDJSON_NOEXCEPT /* noexcept */
585
+ #define RAPIDJSON_NOEXCEPT throw ()
577
586
#endif // RAPIDJSON_HAS_CXX11_NOEXCEPT
587
+ #endif
578
588
579
589
// no automatic detection, yet
580
590
#ifndef RAPIDJSON_HAS_CXX11_TYPETRAITS
0 commit comments