Eclipse SUMO - Simulation of Urban MObility
|
a template for a bidirectional iterator for the basic_json class This class implements a both iterators (iterator and const_iterator) for the basic_json class. More...
#include <json.hpp>
Public Types | |
using | difference_type = typename BasicJsonType::difference_type |
a type to represent differences between iterators | |
using | iterator_category = std::bidirectional_iterator_tag |
using | pointer = typename std::conditional< std::is_const< BasicJsonType >::value, typename BasicJsonType::const_pointer, typename BasicJsonType::pointer >::type |
defines a pointer to the type iterated over (value_type) | |
using | reference = typename std::conditional< std::is_const< BasicJsonType >::value, typename BasicJsonType::const_reference, typename BasicJsonType::reference >::type |
defines a reference to the type iterated over (value_type) | |
using | value_type = typename BasicJsonType::value_type |
the type of the values when the iterator is dereferenced | |
Public Member Functions | |
iter_impl ()=default | |
iter_impl (const iter_impl< const BasicJsonType > &other) noexcept | |
const copy constructor | |
iter_impl (const iter_impl< typename std::remove_const< BasicJsonType >::type > &other) noexcept | |
converting constructor | |
iter_impl (iter_impl &&) noexcept=default | |
iter_impl (pointer object) noexcept | |
constructor for a given JSON instance | |
const object_t::key_type & | key () const |
return the key of an object iterator | |
template<typename IterImpl , detail::enable_if_t<(std::is_same< IterImpl, iter_impl >::value||std::is_same< IterImpl, other_iter_impl >::value), std::nullptr_t > = nullptr> | |
bool | operator!= (const IterImpl &other) const |
comparison: not equal | |
reference | operator* () const |
return a reference to the value pointed to by the iterator | |
iter_impl | operator+ (difference_type i) const |
add to iterator | |
iter_impl & | operator++ () |
pre-increment (++it) | |
iter_impl const | operator++ (int) |
post-increment (it++) | |
iter_impl & | operator+= (difference_type i) |
add to iterator | |
difference_type | operator- (const iter_impl &other) const |
return difference | |
iter_impl | operator- (difference_type i) const |
subtract from iterator | |
iter_impl & | operator-- () |
pre-decrement (–it) | |
iter_impl const | operator-- (int) |
post-decrement (it–) | |
iter_impl & | operator-= (difference_type i) |
subtract from iterator | |
pointer | operator-> () const |
dereference the iterator | |
bool | operator< (const iter_impl &other) const |
comparison: smaller | |
bool | operator<= (const iter_impl &other) const |
comparison: less than or equal | |
iter_impl & | operator= (const iter_impl< const BasicJsonType > &other) noexcept |
converting assignment | |
iter_impl & | operator= (const iter_impl< typename std::remove_const< BasicJsonType >::type > &other) noexcept |
converting assignment | |
iter_impl & | operator= (iter_impl &&) noexcept=default |
template<typename IterImpl , detail::enable_if_t<(std::is_same< IterImpl, iter_impl >::value||std::is_same< IterImpl, other_iter_impl >::value), std::nullptr_t > = nullptr> | |
bool | operator== (const IterImpl &other) const |
comparison: equal | |
bool | operator> (const iter_impl &other) const |
comparison: greater than | |
bool | operator>= (const iter_impl &other) const |
comparison: greater than or equal | |
reference | operator[] (difference_type n) const |
access to successor | |
void | set_end () noexcept |
set the iterator past the last value | |
switch (m_object->m_type) | |
reference | value () const |
return the value of an iterator | |
~iter_impl ()=default | |
Data Fields | |
JSON_PRIVATE_UNLESS_TESTED | : void set_begin() noexcept { JSON_ASSERT(m_object != nullptr) |
JSON_PRIVATE_UNLESS_TESTED | : pointer m_object = nullptr |
internal_iterator< typename std::remove_const< BasicJsonType >::type > | m_it {} |
the actual iterator of the associated instance | |
Private Types | |
using | array_t = typename BasicJsonType::array_t |
using | object_t = typename BasicJsonType::object_t |
using | other_iter_impl = iter_impl< typename std::conditional< std::is_const< BasicJsonType >::value, typename std::remove_const< BasicJsonType >::type, const BasicJsonType >::type > |
the iterator with BasicJsonType of different const-ness | |
Private Attributes | |
friend | BasicJsonType |
friend | iteration_proxy< iter_impl > |
friend | iteration_proxy_value< iter_impl > |
friend | other_iter_impl |
allow basic_json to access private members | |
Friends | |
iter_impl | operator+ (difference_type i, const iter_impl &it) |
addition of distance and iterator | |
a template for a bidirectional iterator for the basic_json class This class implements a both iterators (iterator and const_iterator) for the basic_json class.
|
private |
using nlohmann::detail::iter_impl< BasicJsonType >::difference_type = typename BasicJsonType::difference_type |
using nlohmann::detail::iter_impl< BasicJsonType >::iterator_category = std::bidirectional_iterator_tag |
The std::iterator class template (used as a base class to provide typedefs) is deprecated in C++17. The C++ Standard has never required user-defined iterators to derive from std::iterator. A user-defined iterator should provide publicly accessible typedefs named iterator_category, value_type, difference_type, pointer, and reference. Note that value_type is required to be non-const, even for constant iterators.
|
private |
|
private |
using nlohmann::detail::iter_impl< BasicJsonType >::pointer = typename std::conditional<std::is_const<BasicJsonType>::value, typename BasicJsonType::const_pointer, typename BasicJsonType::pointer>::type |
using nlohmann::detail::iter_impl< BasicJsonType >::reference = typename std::conditional<std::is_const<BasicJsonType>::value, typename BasicJsonType::const_reference, typename BasicJsonType::reference>::type |
using nlohmann::detail::iter_impl< BasicJsonType >::value_type = typename BasicJsonType::value_type |
|
default |
|
default |
|
defaultnoexcept |
|
inlineexplicitnoexcept |
constructor for a given JSON instance
[in] | object | pointer to a JSON object for this iterator |
m_object != nullptr
. Definition at line 11456 of file json.hpp.
References nlohmann::detail::array, nlohmann::detail::internal_iterator< BasicJsonType >::array_iterator, nlohmann::detail::binary, nlohmann::detail::boolean, nlohmann::detail::discarded, JSON_ASSERT, nlohmann::detail::iter_impl< BasicJsonType >::m_it, nlohmann::detail::null, nlohmann::detail::number_float, nlohmann::detail::number_integer, nlohmann::detail::number_unsigned, nlohmann::detail::object, nlohmann::detail::internal_iterator< BasicJsonType >::object_iterator, nlohmann::detail::internal_iterator< BasicJsonType >::primitive_iterator, and nlohmann::detail::string.
|
inlinenoexcept |
const copy constructor
[in] | other | const iterator to copy from |
|
inlinenoexcept |
|
inline |
return the key of an object iterator
m_object != nullptr
. Definition at line 12078 of file json.hpp.
References nlohmann::detail::invalid_iterator::create(), JSON_ASSERT, JSON_HEDLEY_LIKELY, JSON_THROW, nlohmann::detail::iter_impl< BasicJsonType >::m_it, and nlohmann::detail::internal_iterator< BasicJsonType >::object_iterator.
|
inline |
comparison: not equal
m_object != nullptr
. Definition at line 11861 of file json.hpp.
References nlohmann::detail::iter_impl< BasicJsonType >::operator==().
|
inline |
return a reference to the value pointed to by the iterator
m_object != nullptr
. Definition at line 11636 of file json.hpp.
References nlohmann::detail::array, nlohmann::detail::internal_iterator< BasicJsonType >::array_iterator, nlohmann::detail::binary, nlohmann::detail::boolean, nlohmann::detail::invalid_iterator::create(), nlohmann::detail::discarded, nlohmann::detail::primitive_iterator_t::is_begin(), JSON_ASSERT, JSON_HEDLEY_LIKELY, JSON_THROW, nlohmann::detail::iter_impl< BasicJsonType >::m_it, nlohmann::detail::null, nlohmann::detail::number_float, nlohmann::detail::number_integer, nlohmann::detail::number_unsigned, nlohmann::detail::object, nlohmann::detail::internal_iterator< BasicJsonType >::object_iterator, nlohmann::detail::internal_iterator< BasicJsonType >::primitive_iterator, and nlohmann::detail::string.
Referenced by nlohmann::detail::iter_impl< BasicJsonType >::value().
|
inline |
|
inline |
pre-increment (++it)
m_object != nullptr
. Definition at line 11733 of file json.hpp.
References nlohmann::detail::array, nlohmann::detail::internal_iterator< BasicJsonType >::array_iterator, nlohmann::detail::binary, nlohmann::detail::boolean, nlohmann::detail::discarded, JSON_ASSERT, nlohmann::detail::iter_impl< BasicJsonType >::m_it, nlohmann::detail::null, nlohmann::detail::number_float, nlohmann::detail::number_integer, nlohmann::detail::number_unsigned, nlohmann::detail::object, nlohmann::detail::internal_iterator< BasicJsonType >::object_iterator, nlohmann::detail::internal_iterator< BasicJsonType >::primitive_iterator, and nlohmann::detail::string.
|
inline |
|
inline |
add to iterator
m_object != nullptr
. Definition at line 11932 of file json.hpp.
References nlohmann::detail::array, nlohmann::detail::internal_iterator< BasicJsonType >::array_iterator, nlohmann::detail::binary, nlohmann::detail::boolean, nlohmann::detail::invalid_iterator::create(), nlohmann::detail::discarded, JSON_ASSERT, JSON_THROW, nlohmann::detail::iter_impl< BasicJsonType >::m_it, nlohmann::detail::null, nlohmann::detail::number_float, nlohmann::detail::number_integer, nlohmann::detail::number_unsigned, nlohmann::detail::object, nlohmann::detail::internal_iterator< BasicJsonType >::primitive_iterator, and nlohmann::detail::string.
Referenced by nlohmann::detail::iter_impl< BasicJsonType >::operator-=().
|
inline |
return difference
m_object != nullptr
. Definition at line 12011 of file json.hpp.
References nlohmann::detail::array, nlohmann::detail::internal_iterator< BasicJsonType >::array_iterator, nlohmann::detail::binary, nlohmann::detail::boolean, nlohmann::detail::invalid_iterator::create(), nlohmann::detail::discarded, JSON_ASSERT, JSON_THROW, nlohmann::detail::iter_impl< BasicJsonType >::m_it, nlohmann::detail::null, nlohmann::detail::number_float, nlohmann::detail::number_integer, nlohmann::detail::number_unsigned, nlohmann::detail::object, nlohmann::detail::internal_iterator< BasicJsonType >::primitive_iterator, and nlohmann::detail::string.
|
inline |
|
inline |
pre-decrement (–it)
m_object != nullptr
. Definition at line 11784 of file json.hpp.
References nlohmann::detail::array, nlohmann::detail::internal_iterator< BasicJsonType >::array_iterator, nlohmann::detail::binary, nlohmann::detail::boolean, nlohmann::detail::discarded, JSON_ASSERT, nlohmann::detail::iter_impl< BasicJsonType >::m_it, nlohmann::detail::null, nlohmann::detail::number_float, nlohmann::detail::number_integer, nlohmann::detail::number_unsigned, nlohmann::detail::object, nlohmann::detail::internal_iterator< BasicJsonType >::object_iterator, nlohmann::detail::internal_iterator< BasicJsonType >::primitive_iterator, and nlohmann::detail::string.
|
inline |
|
inline |
subtract from iterator
m_object != nullptr
. Definition at line 11969 of file json.hpp.
References nlohmann::detail::iter_impl< BasicJsonType >::operator+=().
|
inline |
dereference the iterator
m_object != nullptr
. Definition at line 11680 of file json.hpp.
References nlohmann::detail::array, nlohmann::detail::internal_iterator< BasicJsonType >::array_iterator, nlohmann::detail::binary, nlohmann::detail::boolean, nlohmann::detail::invalid_iterator::create(), nlohmann::detail::discarded, nlohmann::detail::primitive_iterator_t::is_begin(), JSON_ASSERT, JSON_HEDLEY_LIKELY, JSON_THROW, nlohmann::detail::iter_impl< BasicJsonType >::m_it, nlohmann::detail::null, nlohmann::detail::number_float, nlohmann::detail::number_integer, nlohmann::detail::number_unsigned, nlohmann::detail::object, nlohmann::detail::internal_iterator< BasicJsonType >::object_iterator, nlohmann::detail::internal_iterator< BasicJsonType >::primitive_iterator, and nlohmann::detail::string.
|
inline |
comparison: smaller
m_object != nullptr
. Definition at line 11870 of file json.hpp.
References nlohmann::detail::array, nlohmann::detail::internal_iterator< BasicJsonType >::array_iterator, nlohmann::detail::binary, nlohmann::detail::boolean, nlohmann::detail::invalid_iterator::create(), nlohmann::detail::discarded, JSON_ASSERT, JSON_HEDLEY_UNLIKELY, JSON_THROW, nlohmann::detail::iter_impl< BasicJsonType >::m_it, nlohmann::detail::null, nlohmann::detail::number_float, nlohmann::detail::number_integer, nlohmann::detail::number_unsigned, nlohmann::detail::object, nlohmann::detail::internal_iterator< BasicJsonType >::primitive_iterator, and nlohmann::detail::string.
Referenced by nlohmann::detail::iter_impl< BasicJsonType >::operator>=().
|
inline |
comparison: less than or equal
m_object != nullptr
. Definition at line 11905 of file json.hpp.
Referenced by nlohmann::detail::iter_impl< BasicJsonType >::operator>().
|
inlinenoexcept |
converting assignment
[in] | other | const iterator to copy from |
Definition at line 11516 of file json.hpp.
References nlohmann::detail::iter_impl< BasicJsonType >::m_it.
|
inlinenoexcept |
converting assignment
[in] | other | non-const iterator to copy from |
Definition at line 11541 of file json.hpp.
References nlohmann::detail::iter_impl< BasicJsonType >::m_it.
|
defaultnoexcept |
|
inline |
comparison: equal
m_object != nullptr
. Definition at line 11825 of file json.hpp.
References nlohmann::detail::array, nlohmann::detail::internal_iterator< BasicJsonType >::array_iterator, nlohmann::detail::binary, nlohmann::detail::boolean, nlohmann::detail::invalid_iterator::create(), nlohmann::detail::discarded, JSON_ASSERT, JSON_HEDLEY_UNLIKELY, JSON_THROW, nlohmann::detail::iter_impl< BasicJsonType >::m_it, nlohmann::detail::null, nlohmann::detail::number_float, nlohmann::detail::number_integer, nlohmann::detail::number_unsigned, nlohmann::detail::object, nlohmann::detail::internal_iterator< BasicJsonType >::object_iterator, nlohmann::detail::internal_iterator< BasicJsonType >::primitive_iterator, and nlohmann::detail::string.
Referenced by nlohmann::detail::iter_impl< BasicJsonType >::operator!=().
|
inline |
comparison: greater than
m_object != nullptr
. Definition at line 11914 of file json.hpp.
References nlohmann::detail::iter_impl< BasicJsonType >::operator<=().
|
inline |
comparison: greater than or equal
m_object != nullptr
. Definition at line 11923 of file json.hpp.
References nlohmann::detail::iter_impl< BasicJsonType >::operator<().
|
inline |
access to successor
m_object != nullptr
. Definition at line 12040 of file json.hpp.
References nlohmann::detail::array, nlohmann::detail::internal_iterator< BasicJsonType >::array_iterator, nlohmann::detail::binary, nlohmann::detail::boolean, nlohmann::detail::invalid_iterator::create(), nlohmann::detail::discarded, nlohmann::detail::primitive_iterator_t::get_value(), JSON_ASSERT, JSON_HEDLEY_LIKELY, JSON_THROW, nlohmann::detail::iter_impl< BasicJsonType >::m_it, nlohmann::detail::null, nlohmann::detail::number_float, nlohmann::detail::number_integer, nlohmann::detail::number_unsigned, nlohmann::detail::object, nlohmann::detail::internal_iterator< BasicJsonType >::primitive_iterator, and nlohmann::detail::string.
|
inlinenoexcept |
set the iterator past the last value
m_object != nullptr
. Definition at line 11597 of file json.hpp.
References nlohmann::detail::array, nlohmann::detail::internal_iterator< BasicJsonType >::array_iterator, nlohmann::detail::binary, nlohmann::detail::boolean, nlohmann::detail::discarded, JSON_ASSERT, nlohmann::detail::iter_impl< BasicJsonType >::m_it, nlohmann::detail::null, nlohmann::detail::number_float, nlohmann::detail::number_integer, nlohmann::detail::number_unsigned, nlohmann::detail::object, nlohmann::detail::internal_iterator< BasicJsonType >::object_iterator, nlohmann::detail::internal_iterator< BasicJsonType >::primitive_iterator, nlohmann::detail::primitive_iterator_t::set_end(), and nlohmann::detail::string.
Referenced by nlohmann::basic_json< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer, BinaryType >::cend(), and nlohmann::basic_json< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer, BinaryType >::end().
|
inline |
Definition at line 11557 of file json.hpp.
References nlohmann::detail::array, nlohmann::detail::internal_iterator< BasicJsonType >::array_iterator, nlohmann::detail::binary, nlohmann::detail::boolean, nlohmann::detail::discarded, nlohmann::detail::iter_impl< BasicJsonType >::m_it, nlohmann::detail::null, nlohmann::detail::number_float, nlohmann::detail::number_integer, nlohmann::detail::number_unsigned, nlohmann::detail::object, nlohmann::detail::internal_iterator< BasicJsonType >::object_iterator, nlohmann::detail::internal_iterator< BasicJsonType >::primitive_iterator, nlohmann::detail::primitive_iterator_t::set_begin(), nlohmann::detail::primitive_iterator_t::set_end(), and nlohmann::detail::string.
|
inline |
return the value of an iterator
m_object != nullptr
. Definition at line 12094 of file json.hpp.
References nlohmann::detail::iter_impl< BasicJsonType >::operator*().
|
friend |
JSON_PRIVATE_UNLESS_TESTED nlohmann::detail::iter_impl< BasicJsonType >::__pad0__ |
JSON_PRIVATE_UNLESS_TESTED nlohmann::detail::iter_impl< BasicJsonType >::__pad1__ |
|
private |
|
private |
|
private |
internal_iterator<typename std::remove_const<BasicJsonType>::type> nlohmann::detail::iter_impl< BasicJsonType >::m_it {} |
the actual iterator of the associated instance
Definition at line 12103 of file json.hpp.
Referenced by nlohmann::basic_json< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer, BinaryType >::insert(), nlohmann::basic_json< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer, BinaryType >::insert(), nlohmann::basic_json< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer, BinaryType >::insert_iterator(), nlohmann::detail::iter_impl< BasicJsonType >::iter_impl(), nlohmann::detail::iter_impl< BasicJsonType >::key(), nlohmann::detail::iter_impl< BasicJsonType >::operator*(), nlohmann::detail::iter_impl< BasicJsonType >::operator++(), nlohmann::detail::iter_impl< BasicJsonType >::operator+=(), nlohmann::detail::iter_impl< BasicJsonType >::operator-(), nlohmann::detail::iter_impl< BasicJsonType >::operator--(), nlohmann::detail::iter_impl< BasicJsonType >::operator->(), nlohmann::detail::iter_impl< BasicJsonType >::operator<(), nlohmann::detail::iter_impl< BasicJsonType >::operator=(), nlohmann::detail::iter_impl< BasicJsonType >::operator=(), nlohmann::detail::iter_impl< BasicJsonType >::operator==(), nlohmann::detail::iter_impl< BasicJsonType >::operator[](), nlohmann::detail::iter_impl< BasicJsonType >::set_end(), and nlohmann::detail::iter_impl< BasicJsonType >::switch().
|
private |
allow basic_json to access private members