Merge pull request #940 from kaidokert/develop

Allow overriding THROW/CATCH/TRY macros with no-exceptions #938
This commit is contained in:
Niels Lohmann 2018-01-29 22:04:26 +01:00 committed by GitHub
commit ae235139b9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 28 additions and 0 deletions

View file

@ -46,6 +46,20 @@
#define JSON_CATCH(exception) if(false) #define JSON_CATCH(exception) if(false)
#endif #endif
// override exception macros
#if defined(JSON_THROW_USER)
#undef JSON_THROW
#define JSON_THROW JSON_THROW_USER
#endif
#if defined(JSON_TRY_USER)
#undef JSON_TRY
#define JSON_TRY JSON_TRY_USER
#endif
#if defined(JSON_CATCH_USER)
#undef JSON_CATCH
#define JSON_CATCH JSON_CATCH_USER
#endif
// manual branch prediction // manual branch prediction
#if defined(__clang__) || defined(__GNUC__) || defined(__GNUG__) #if defined(__clang__) || defined(__GNUC__) || defined(__GNUG__)
#define JSON_LIKELY(x) __builtin_expect(!!(x), 1) #define JSON_LIKELY(x) __builtin_expect(!!(x), 1)

View file

@ -156,6 +156,20 @@ using json = basic_json<>;
#define JSON_CATCH(exception) if(false) #define JSON_CATCH(exception) if(false)
#endif #endif
// override exception macros
#if defined(JSON_THROW_USER)
#undef JSON_THROW
#define JSON_THROW JSON_THROW_USER
#endif
#if defined(JSON_TRY_USER)
#undef JSON_TRY
#define JSON_TRY JSON_TRY_USER
#endif
#if defined(JSON_CATCH_USER)
#undef JSON_CATCH
#define JSON_CATCH JSON_CATCH_USER
#endif
// manual branch prediction // manual branch prediction
#if defined(__clang__) || defined(__GNUC__) || defined(__GNUG__) #if defined(__clang__) || defined(__GNUC__) || defined(__GNUG__)
#define JSON_LIKELY(x) __builtin_expect(!!(x), 1) #define JSON_LIKELY(x) __builtin_expect(!!(x), 1)