JsonCpp project page | Classes | Namespace | JsonCpp home page

assertions.h File Reference
`#include <cstdlib>`
`#include <sstream>`
`#include "config.h"`

Go to the source code of this file.

## Macros

#define | JSON_ASSERT(condition)
| It should not be possible for a maliciously designed file to cause an abort() or seg-fault, so these macros are used only for pre-condition violations and internal logic errors.
#define | JSON_FAIL_MESSAGE(message)
#define | JSON_ASSERT_MESSAGE(condition, message)

## Macro Definition Documentation

## JSON_ASSERT

#define JSON_ASSERT | ( |  | condition | ) |

Value:
do { \
if (!(condition)) { \
Json::throwLogicError("assert json failed"); \
} \
} while (0)

It should not be possible for a maliciously designed file to cause an abort() or seg-fault, so these macros are used only for pre-condition violations and internal logic errors.

Definition at line 23 of file assertions.h.

Referenced by Json::Value::operator<(), Json::Value::operator==(), and Json::Value::resize().

## JSON_ASSERT_MESSAGE

#define JSON_ASSERT_MESSAGE | ( |  | condition,
|  |  | message )

Value:
do { \
if (!(condition)) { \
JSON_FAIL_MESSAGE(message); \
} \
} while (0)

Definition at line 54 of file assertions.h.

Referenced by Json::Value::append(), Json::Value::asCString(), Json::Value::asInt(), Json::Value::asInt64(), Json::Value::asUInt(), Json::Value::asUInt64(), Json::Value::clear(), Json::Value::demand(), Json::duplicateAndPrefixStringValue(), Json::Value::find(), Json::Value::getMemberNames(), Json::Value::insert(), Json::Value::operator[](), Json::Value::operator[](), Json::Value::operator[](), Json::Value::operator[](), Json::Value::removeMember(), Json::Value::resize(), Json::Value::setComment(), and Json::Value::Value().

## JSON_FAIL_MESSAGE

#define JSON_FAIL_MESSAGE | ( |  | message | ) |

Value:
do { \
OStringStream oss; \
oss << message; \
Json::throwLogicError(oss.str()); \
abort(); \
} while (0)

Definition at line 30 of file assertions.h.

Referenced by Json::Value::asBool(), Json::Value::asDouble(), Json::Value::asFloat(), Json::Value::asInt(), Json::Value::asInt64(), Json::Value::asString(), Json::Value::asUInt(), and Json::Value::asUInt64().