Merge pull request #1329 from pah/fix-noexcept
Add RAPIDJSON_NOEXCEPT_ASSERT
This commit is contained in:
commit
c0ca05f6dd
@ -37,9 +37,6 @@ RAPIDJSON_DIAG_OFF(4244) // conversion from kXxxFlags to 'uint16_t', possible lo
|
|||||||
|
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
RAPIDJSON_DIAG_OFF(effc++)
|
RAPIDJSON_DIAG_OFF(effc++)
|
||||||
#if __GNUC__ >= 6
|
|
||||||
RAPIDJSON_DIAG_OFF(terminate) // ignore throwing RAPIDJSON_ASSERT in RAPIDJSON_NOEXCEPT functions
|
|
||||||
#endif
|
|
||||||
#endif // __GNUC__
|
#endif // __GNUC__
|
||||||
|
|
||||||
#ifndef RAPIDJSON_NOMEMBERITERATORCLASS
|
#ifndef RAPIDJSON_NOMEMBERITERATORCLASS
|
||||||
@ -625,7 +622,7 @@ public:
|
|||||||
\note Default content for number is zero.
|
\note Default content for number is zero.
|
||||||
*/
|
*/
|
||||||
explicit GenericValue(Type type) RAPIDJSON_NOEXCEPT : data_() {
|
explicit GenericValue(Type type) RAPIDJSON_NOEXCEPT : data_() {
|
||||||
static const uint16_t defaultFlags[7] = {
|
static const uint16_t defaultFlags[] = {
|
||||||
kNullFlag, kFalseFlag, kTrueFlag, kObjectFlag, kArrayFlag, kShortStringFlag,
|
kNullFlag, kFalseFlag, kTrueFlag, kObjectFlag, kArrayFlag, kShortStringFlag,
|
||||||
kNumberAnyFlag
|
kNumberAnyFlag
|
||||||
};
|
};
|
||||||
@ -831,7 +828,7 @@ public:
|
|||||||
/*! \param rhs Source of the assignment. It will become a null value after assignment.
|
/*! \param rhs Source of the assignment. It will become a null value after assignment.
|
||||||
*/
|
*/
|
||||||
GenericValue& operator=(GenericValue& rhs) RAPIDJSON_NOEXCEPT {
|
GenericValue& operator=(GenericValue& rhs) RAPIDJSON_NOEXCEPT {
|
||||||
if (this != &rhs) {
|
if (RAPIDJSON_LIKELY(this != &rhs)) {
|
||||||
this->~GenericValue();
|
this->~GenericValue();
|
||||||
RawAssign(rhs);
|
RawAssign(rhs);
|
||||||
}
|
}
|
||||||
|
@ -593,6 +593,17 @@ RAPIDJSON_NAMESPACE_END
|
|||||||
|
|
||||||
//!@endcond
|
//!@endcond
|
||||||
|
|
||||||
|
//! Assertion (in non-throwing contexts).
|
||||||
|
/*! \ingroup RAPIDJSON_CONFIG
|
||||||
|
Some functions provide a \c noexcept guarantee, if the compiler supports it.
|
||||||
|
In these cases, the \ref RAPIDJSON_ASSERT macro cannot be overridden to
|
||||||
|
throw an exception. This macro adds a separate customization point for
|
||||||
|
such cases.
|
||||||
|
|
||||||
|
Defaults to C \c assert() (as \ref RAPIDJSON_ASSERT), if \c noexcept is
|
||||||
|
supported, and to \ref RAPIDJSON_ASSERT otherwise.
|
||||||
|
*/
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
// RAPIDJSON_NOEXCEPT_ASSERT
|
// RAPIDJSON_NOEXCEPT_ASSERT
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user