Made JSON_USE_EXCEPTION's value in config.h a default that can be overridden.

This allows users to override it with their compiler invocation. For example:

    g++ -D JSON_USE_EXCEPTION=0 ...
This commit is contained in:
Aaron Jacobs 2011-09-14 08:41:37 +00:00
parent c3763f55da
commit 7c507d7eba
2 changed files with 6 additions and 4 deletions

View File

@ -13,10 +13,10 @@
# include <json/config.h> # include <json/config.h>
#endif // if !defined(JSON_IS_AMALGAMATION) #endif // if !defined(JSON_IS_AMALGAMATION)
#if defined(JSON_USE_EXCEPTION) #if JSON_USE_EXCEPTION
#define JSON_ASSERT( condition ) assert( condition ); // @todo <= change this into an exception throw #define JSON_ASSERT( condition ) assert( condition ); // @todo <= change this into an exception throw
#define JSON_FAIL_MESSAGE( message ) throw std::runtime_error( message ); #define JSON_FAIL_MESSAGE( message ) throw std::runtime_error( message );
#else // defined(JSON_USE_EXCEPTION) #else // JSON_USE_EXCEPTION
#define JSON_ASSERT( condition ) assert( condition ); #define JSON_ASSERT( condition ) assert( condition );
#define JSON_FAIL_MESSAGE( message ) { std::cerr << std::endl << message << std::endl; exit(123); } #define JSON_FAIL_MESSAGE( message ) { std::cerr << std::endl << message << std::endl; exit(123); }
#endif #endif

View File

@ -24,9 +24,11 @@
/// Only has effects if JSON_VALUE_USE_INTERNAL_MAP is defined. /// Only has effects if JSON_VALUE_USE_INTERNAL_MAP is defined.
//# define JSON_USE_SIMPLE_INTERNAL_ALLOCATOR 1 //# define JSON_USE_SIMPLE_INTERNAL_ALLOCATOR 1
/// If defined, indicates that Json use exception to report invalid type manipulation // If non-zero, the library uses exceptions to report bad input instead of C
/// instead of C assert macro. // assertion macros. The default is to use exceptions.
# ifndef JSON_USE_EXCEPTION
# define JSON_USE_EXCEPTION 1 # define JSON_USE_EXCEPTION 1
# endif
/// If defined, indicates that the source file is amalgated /// If defined, indicates that the source file is amalgated
/// to prevent private header inclusion. /// to prevent private header inclusion.