TerraForge3D  2.3.1
3D Terrain And Landscape Generator

◆ get_checked() [2/2]

template<typename BasicJsonType >
const BasicJsonType & nlohmann::json_pointer< BasicJsonType >::get_checked ( const BasicJsonType *  ptr) const
inlineprivate
Exceptions
parse_error.106if an array index begins with '0'
parse_error.109if an array index was not a number
out_of_range.402if the array index '-' is used
out_of_range.404if the JSON pointer can not be resolved

Definition at line 13197 of file json.hpp.

13198 {
13199 for (const auto &reference_token : reference_tokens)
13200 {
13201 switch (ptr->type())
13202 {
13204 {
13205 // note: at performs range check
13206 ptr = &ptr->at(reference_token);
13207 break;
13208 }
13209
13211 {
13212 if (JSON_HEDLEY_UNLIKELY(reference_token == "-"))
13213 {
13214 // "-" always fails the range check
13215 JSON_THROW(detail::out_of_range::create(402,
13216 "array index '-' (" + std::to_string(ptr->m_value.array->size()) +
13217 ") is out of range", *ptr));
13218 }
13219
13220 // note: at performs range check
13221 ptr = &ptr->at(array_index(reference_token));
13222 break;
13223 }
13224
13233 default:
13234 JSON_THROW(detail::out_of_range::create(404, "unresolved reference token '" + reference_token + "'", *ptr));
13235 }
13236 }
13237
13238 return *ptr;
13239 }
static BasicJsonType::size_type array_index(const std::string &s)
Definition: json.hpp:12878
@ number_integer
number value (signed integer)
@ discarded
discarded by the parser callback function
@ binary
binary array (ordered collection of bytes)
@ object
object (unordered set of name/value pairs)
@ number_float
number value (floating-point)
@ number_unsigned
number value (unsigned integer)
@ array
array (ordered collection of values)