Skip to content

Commit cdb2d47

Browse files
committed
Provide RAPIDJSON_HAS_CXX11 and use it for RAPIDJSON_HAS_CXX11_RVALUE_REFS and RAPIDJSON_HAS_CXX11_NOEXCEPT.
1 parent 1c2c8e0 commit cdb2d47

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

include/rapidjson/rapidjson.h

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -541,8 +541,14 @@ RAPIDJSON_NAMESPACE_END
541541
///////////////////////////////////////////////////////////////////////////////
542542
// C++11 features
543543

544+
#ifndef RAPIDJSON_HAS_CXX11
545+
#define RAPIDJSON_HAS_CXX11 (__cplusplus >= 201103L)
546+
#endif
547+
544548
#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__)
546552
#if __has_feature(cxx_rvalue_references) && \
547553
(defined(_MSC_VER) || defined(_LIBCPP_VERSION) || defined(__GLIBCXX__) && __GLIBCXX__ >= 20080306)
548554
#define RAPIDJSON_HAS_CXX11_RVALUE_REFS 1
@@ -560,7 +566,9 @@ RAPIDJSON_NAMESPACE_END
560566
#endif // RAPIDJSON_HAS_CXX11_RVALUE_REFS
561567

562568
#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__)
564572
#define RAPIDJSON_HAS_CXX11_NOEXCEPT __has_feature(cxx_noexcept)
565573
#elif (defined(RAPIDJSON_GNUC) && (RAPIDJSON_GNUC >= RAPIDJSON_VERSION_CODE(4,6,0)) && defined(__GXX_EXPERIMENTAL_CXX0X__)) || \
566574
(defined(_MSC_VER) && _MSC_VER >= 1900) || \
@@ -570,11 +578,13 @@ RAPIDJSON_NAMESPACE_END
570578
#define RAPIDJSON_HAS_CXX11_NOEXCEPT 0
571579
#endif
572580
#endif
581+
#ifndef RAPIDJSON_NOEXCEPT
573582
#if RAPIDJSON_HAS_CXX11_NOEXCEPT
574583
#define RAPIDJSON_NOEXCEPT noexcept
575584
#else
576-
#define RAPIDJSON_NOEXCEPT /* noexcept */
585+
#define RAPIDJSON_NOEXCEPT throw()
577586
#endif // RAPIDJSON_HAS_CXX11_NOEXCEPT
587+
#endif
578588

579589
// no automatic detection, yet
580590
#ifndef RAPIDJSON_HAS_CXX11_TYPETRAITS

0 commit comments

Comments
 (0)