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>
|
using | iterator_category = std::bidirectional_iterator_tag |
|
using | value_type = typename BasicJsonType::value_type |
| the type of the values when the iterator is dereferenced
|
|
using | difference_type = typename BasicJsonType::difference_type |
| a type to represent differences between iterators
|
|
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)
|
|
template<typename BasicJsonType>
class detail::iter_impl< BasicJsonType >
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.
- Note
- An iterator is called initialized when a pointer to a JSON value has been set (e.g., by a constructor or a copy assignment). If the iterator is default-constructed, it is uninitialized and most methods are undefined. The library uses assertions to detect calls on uninitialized iterators.** @requirement The class satisfies the following concept requirements:
- BidirectionalIterator: The iterator that can be moved can be moved in both directions (i.e. incremented and decremented).
- Since
- version 1.0.0, simplified in version 2.0.9, change to bidirectional iterators in version 3.0.0 (see https://github.com/nlohmann/json/issues/593)
◆ difference_type
template<typename BasicJsonType >
using detail::iter_impl< BasicJsonType >::difference_type = typename BasicJsonType::difference_type |
a type to represent differences between iterators
◆ iterator_category
template<typename BasicJsonType >
using 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.
◆ pointer
template<typename BasicJsonType >
using detail::iter_impl< BasicJsonType >::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)
◆ reference
template<typename BasicJsonType >
using detail::iter_impl< BasicJsonType >::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)
◆ value_type
template<typename BasicJsonType >
using detail::iter_impl< BasicJsonType >::value_type = typename BasicJsonType::value_type |
the type of the values when the iterator is dereferenced
◆ iter_impl() [1/5]
template<typename BasicJsonType >
◆ ~iter_impl()
template<typename BasicJsonType >
◆ iter_impl() [2/5]
template<typename BasicJsonType >
◆ iter_impl() [3/5]
template<typename BasicJsonType >
constructor for a given JSON instance
- Parameters
-
[in] | object | pointer to a JSON object for this iterator |
- Precondition
- object != nullptr
- Postcondition
- The iterator is initialized; i.e.
m_object != nullptr
.
◆ iter_impl() [4/5]
template<typename BasicJsonType >
const copy constructor
- Note
- The conventional copy constructor and copy assignment are implicitly defined. Combined with the following converting constructor and assignment, they support: (1) copy from iterator to iterator, (2) copy from const iterator to const iterator, and (3) conversion from iterator to const iterator. However conversion from const iterator to iterator is not defined.
- Parameters
-
[in] | other | const iterator to copy from |
- Note
- This copy constructor had to be defined explicitly to circumvent a bug occurring on msvc v19.0 compiler (VS 2015) debug build. For more information refer to: https://github.com/nlohmann/json/issues/1608
◆ iter_impl() [5/5]
template<typename BasicJsonType >
converting constructor
- Parameters
-
[in] | other | non-const iterator to copy from |
- Note
- It is not checked whether other is initialized.
◆ key()
template<typename BasicJsonType >
return the key of an object iterator
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
◆ operator!=()
template<typename BasicJsonType >
comparison: not equal
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
◆ operator*()
template<typename BasicJsonType >
return a reference to the value pointed to by the iterator
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
◆ operator+()
template<typename BasicJsonType >
add to iterator
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
◆ operator++() [1/2]
template<typename BasicJsonType >
pre-increment (++it)
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
◆ operator++() [2/2]
template<typename BasicJsonType >
post-increment (it++)
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
◆ operator+=()
template<typename BasicJsonType >
add to iterator
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
◆ operator-() [1/2]
template<typename BasicJsonType >
return difference
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
◆ operator-() [2/2]
template<typename BasicJsonType >
subtract from iterator
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
◆ operator--() [1/2]
template<typename BasicJsonType >
pre-decrement (–it)
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
◆ operator--() [2/2]
template<typename BasicJsonType >
post-decrement (it–)
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
◆ operator-=()
template<typename BasicJsonType >
subtract from iterator
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
◆ operator->()
template<typename BasicJsonType >
dereference the iterator
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
◆ operator<()
template<typename BasicJsonType >
comparison: smaller
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
◆ operator<=()
template<typename BasicJsonType >
comparison: less than or equal
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
◆ operator=() [1/3]
template<typename BasicJsonType >
converting assignment
- Parameters
-
[in] | other | const iterator to copy from |
- Returns
- const/non-const iterator
- Note
- It is not checked whether other is initialized.
◆ operator=() [2/3]
template<typename BasicJsonType >
converting assignment
- Parameters
-
[in] | other | non-const iterator to copy from |
- Returns
- const/non-const iterator
- Note
- It is not checked whether other is initialized.
◆ operator=() [3/3]
template<typename BasicJsonType >
◆ operator==()
template<typename BasicJsonType >
comparison: equal
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
◆ operator>()
template<typename BasicJsonType >
comparison: greater than
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
◆ operator>=()
template<typename BasicJsonType >
comparison: greater than or equal
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
◆ operator[]()
template<typename BasicJsonType >
access to successor
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
◆ set_end()
template<typename BasicJsonType >
set the iterator past the last value
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
◆ switch()
template<typename BasicJsonType >
◆ value()
template<typename BasicJsonType >
return the value of an iterator
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
◆ operator+
template<typename BasicJsonType >
addition of distance and iterator
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
◆ __pad0__
template<typename BasicJsonType >
◆ __pad1__
template<typename BasicJsonType >
◆ m_it
template<typename BasicJsonType >
the actual iterator of the associated instance
The documentation for this class was generated from the following file: