mirror of
https://github.com/open-source-parsers/jsoncpp.git
synced 2025-01-14 01:47:54 +08:00
drop do{}while(0)
idiom
Rationale: * http://stackoverflow.com/questions/154136/do-while-and-if-else-statements-in-c-c-macros/154138#154138 But Visual Studio issues a warning: `warning C4127: conditional expression is constant` * http://stackoverflow.com/questions/1946445/c-c-how-to-use-the-do-while0-construct-without-compiler-warnings-like-c412
This commit is contained in:
parent
13e063c336
commit
b3e6f3d70f
@ -16,11 +16,15 @@
|
||||
#if JSON_USE_EXCEPTION
|
||||
#include <stdexcept>
|
||||
#define JSON_ASSERT(condition) \
|
||||
if (!(condition)) {throw std::logic_error( "assert json failed" );} // @todo <= add detail about condition in exception
|
||||
#define JSON_FAIL_MESSAGE(message) do{std::ostringstream oss; oss << message; throw std::logic_error(oss.str());}while(0)
|
||||
{if (!(condition)) {throw std::logic_error( "assert json failed" );}} // @todo <= add detail about condition in exception
|
||||
#define JSON_FAIL_MESSAGE(message) \
|
||||
{ \
|
||||
std::ostringstream oss; oss << message; \
|
||||
throw std::logic_error(oss.str()); \
|
||||
}
|
||||
//#define JSON_FAIL_MESSAGE(message) throw std::logic_error(message)
|
||||
#else // JSON_USE_EXCEPTION
|
||||
#define JSON_ASSERT(condition) assert(condition);
|
||||
#define JSON_ASSERT(condition) assert(condition)
|
||||
|
||||
// The call to assert() will show the failure message in debug builds. In
|
||||
// release bugs we abort, for a core-dump or debugger.
|
||||
|
Loading…
x
Reference in New Issue
Block a user