diff --git a/src/json.hpp b/src/json.hpp index 62779059..630624a6 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -513,7 +513,7 @@ void get_arithmetic_value(const Json& j, ArithmeticType& val) } else { - throw std::domain_error("type must be number, but is " + type_name(j)); + JSON_THROW(std::domain_error("type must be number, but is " + type_name(j))); } } @@ -592,7 +592,7 @@ void from_json(const Json& j, typename Json::boolean_t& b) { if (!j.is_boolean()) { - throw std::domain_error("type must be boolean, but is " + type_name(j)); + JSON_THROW(std::domain_error("type must be boolean, but is " + type_name(j))); } b = *j.template get_ptr(); } @@ -602,7 +602,7 @@ void from_json(const Json& j, typename Json::string_t& s) { if (!j.is_string()) { - throw std::domain_error("type must be string, but is " + type_name(j)); + JSON_THROW(std::domain_error("type must be string, but is " + type_name(j))); } s = *j.template get_ptr(); } @@ -639,7 +639,7 @@ void from_json(const Json& j, typename Json::array_t& arr) { if (!j.is_array()) { - throw std::domain_error("type must be array, but is " + type_name(j)); + JSON_THROW(std::domain_error("type must be array, but is " + type_name(j))); } arr = *j.template get_ptr(); } @@ -652,13 +652,13 @@ void from_json(const Json& j, std::forward_list& l) // (except when it's null.. ?) if (j.is_null()) { - throw std::domain_error("type must be array, but is " + type_name(j)); + JSON_THROW(std::domain_error("type must be array, but is " + type_name(j))); } if (not std::is_same::value) { if (!j.is_array()) { - throw std::domain_error("type must be array, but is " + type_name(j)); + JSON_THROW(std::domain_error("type must be array, but is " + type_name(j))); } } for (auto it = j.rbegin(), end = j.rend(); it != end; ++it) @@ -711,14 +711,14 @@ void from_json(const Json& j, CompatibleArrayType& arr) { if (j.is_null()) { - throw std::domain_error("type must be array, but is " + type_name(j)); + JSON_THROW(std::domain_error("type must be array, but is " + type_name(j))); } // when T == Json, do not check if value_t is correct if (not std::is_same::value) { if (!j.is_array()) { - throw std::domain_error("type must be array, but is " + type_name(j)); + JSON_THROW(std::domain_error("type must be array, but is " + type_name(j))); } } from_json_array_impl(j, arr, priority_tag<1> {}); @@ -733,7 +733,7 @@ void from_json(const Json& j, CompatibleObjectType& obj) { if (!j.is_object()) { - throw std::domain_error("type must be object, but is " + type_name(j)); + JSON_THROW(std::domain_error("type must be object, but is " + type_name(j))); } auto inner_object = j.template get_ptr(); @@ -777,7 +777,7 @@ void from_json(const Json& j, ArithmeticType& val) } else { - throw std::domain_error("type must be number, but is " + type_name(j)); + JSON_THROW(std::domain_error("type must be number, but is " + type_name(j))); } } diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index cbda7ee7..710f61e8 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -513,7 +513,7 @@ void get_arithmetic_value(const Json& j, ArithmeticType& val) } else { - throw std::domain_error("type must be number, but is " + type_name(j)); + JSON_THROW(std::domain_error("type must be number, but is " + type_name(j))); } } @@ -592,7 +592,7 @@ void from_json(const Json& j, typename Json::boolean_t& b) { if (!j.is_boolean()) { - throw std::domain_error("type must be boolean, but is " + type_name(j)); + JSON_THROW(std::domain_error("type must be boolean, but is " + type_name(j))); } b = *j.template get_ptr(); } @@ -602,7 +602,7 @@ void from_json(const Json& j, typename Json::string_t& s) { if (!j.is_string()) { - throw std::domain_error("type must be string, but is " + type_name(j)); + JSON_THROW(std::domain_error("type must be string, but is " + type_name(j))); } s = *j.template get_ptr(); } @@ -639,7 +639,7 @@ void from_json(const Json& j, typename Json::array_t& arr) { if (!j.is_array()) { - throw std::domain_error("type must be array, but is " + type_name(j)); + JSON_THROW(std::domain_error("type must be array, but is " + type_name(j))); } arr = *j.template get_ptr(); } @@ -652,13 +652,13 @@ void from_json(const Json& j, std::forward_list& l) // (except when it's null.. ?) if (j.is_null()) { - throw std::domain_error("type must be array, but is " + type_name(j)); + JSON_THROW(std::domain_error("type must be array, but is " + type_name(j))); } if (not std::is_same::value) { if (!j.is_array()) { - throw std::domain_error("type must be array, but is " + type_name(j)); + JSON_THROW(std::domain_error("type must be array, but is " + type_name(j))); } } for (auto it = j.rbegin(), end = j.rend(); it != end; ++it) @@ -711,14 +711,14 @@ void from_json(const Json& j, CompatibleArrayType& arr) { if (j.is_null()) { - throw std::domain_error("type must be array, but is " + type_name(j)); + JSON_THROW(std::domain_error("type must be array, but is " + type_name(j))); } // when T == Json, do not check if value_t is correct if (not std::is_same::value) { if (!j.is_array()) { - throw std::domain_error("type must be array, but is " + type_name(j)); + JSON_THROW(std::domain_error("type must be array, but is " + type_name(j))); } } from_json_array_impl(j, arr, priority_tag<1> {}); @@ -733,7 +733,7 @@ void from_json(const Json& j, CompatibleObjectType& obj) { if (!j.is_object()) { - throw std::domain_error("type must be object, but is " + type_name(j)); + JSON_THROW(std::domain_error("type must be object, but is " + type_name(j))); } auto inner_object = j.template get_ptr(); @@ -777,7 +777,7 @@ void from_json(const Json& j, ArithmeticType& val) } else { - throw std::domain_error("type must be number, but is " + type_name(j)); + JSON_THROW(std::domain_error("type must be number, but is " + type_name(j))); } }