TerraForge3D  2.3.1
3D Terrain And Landscape Generator

◆ operator[]()

template<typename BasicJsonType >
reference nlohmann::detail::iter_impl< BasicJsonType >::operator[] ( difference_type  n) const
inline

access to successor

Precondition
The iterator is initialized; i.e. m_object != nullptr.

Definition at line 12347 of file json.hpp.

12348 {
12349 JSON_ASSERT(m_object != nullptr);
12350
12351 switch (m_object->m_type)
12352 {
12353 case value_t::object:
12354 JSON_THROW(invalid_iterator::create(208, "cannot use operator[] for object iterators", *m_object));
12355
12356 case value_t::array:
12357 return *std::next(m_it.array_iterator, n);
12358
12359 case value_t::null:
12360 JSON_THROW(invalid_iterator::create(214, "cannot get value", *m_object));
12361
12362 case value_t::string:
12363 case value_t::boolean:
12367 case value_t::binary:
12368 case value_t::discarded:
12369 default:
12370 {
12371 if (JSON_HEDLEY_LIKELY(m_it.primitive_iterator.get_value() == -n))
12372 {
12373 return *m_object;
12374 }
12375
12376 JSON_THROW(invalid_iterator::create(214, "cannot get value", *m_object));
12377 }
12378 }
12379 }
internal_iterator< typename std::remove_const< BasicJsonType >::type > m_it
the actual iterator of the associated instance
Definition: json.hpp:12410
@ 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)
primitive_iterator_t primitive_iterator
generic iterator for all other types
Definition: json.hpp:11661
BasicJsonType::array_t::iterator array_iterator
iterator for JSON arrays
Definition: json.hpp:11659