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 <goby/util/thirdparty/nlohmann/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)
Definition at line 12833 of file json.hpp.
◆ difference_type
template<typename BasicJsonType >
using detail::iter_impl< BasicJsonType >::difference_type = typename BasicJsonType::difference_type |
a type to represent differences between iterators
Definition at line 12864 of file json.hpp.
◆ 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.
Definition at line 12859 of file json.hpp.
◆ 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)
Definition at line 12866 of file json.hpp.
◆ 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)
Definition at line 12870 of file json.hpp.
◆ 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
Definition at line 12862 of file json.hpp.
◆ 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
.
Definition at line 12886 of file json.hpp.
◆ 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
Definition at line 12936 of file json.hpp.
◆ 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.
Definition at line 12961 of file json.hpp.
◆ key()
template<typename BasicJsonType >
return the key of an object iterator
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
Definition at line 13508 of file json.hpp.
◆ operator!=()
template<typename BasicJsonType >
comparison: not equal
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
Definition at line 13291 of file json.hpp.
◆ 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
.
Definition at line 13066 of file json.hpp.
◆ operator+()
template<typename BasicJsonType >
add to iterator
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
Definition at line 13408 of file json.hpp.
◆ operator++() [1/2]
template<typename BasicJsonType >
pre-increment (++it)
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
Definition at line 13163 of file json.hpp.
◆ operator++() [2/2]
template<typename BasicJsonType >
post-increment (it++)
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
Definition at line 13152 of file json.hpp.
◆ operator+=()
template<typename BasicJsonType >
add to iterator
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
Definition at line 13362 of file json.hpp.
◆ operator-() [1/2]
template<typename BasicJsonType >
return difference
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
Definition at line 13441 of file json.hpp.
◆ operator-() [2/2]
template<typename BasicJsonType >
subtract from iterator
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
Definition at line 13430 of file json.hpp.
◆ operator--() [1/2]
template<typename BasicJsonType >
pre-decrement (–it)
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
Definition at line 13214 of file json.hpp.
◆ operator--() [2/2]
template<typename BasicJsonType >
post-decrement (it–)
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
Definition at line 13203 of file json.hpp.
◆ operator-=()
template<typename BasicJsonType >
subtract from iterator
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
Definition at line 13399 of file json.hpp.
◆ operator->()
template<typename BasicJsonType >
dereference the iterator
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
Definition at line 13110 of file json.hpp.
◆ operator<()
template<typename BasicJsonType >
comparison: smaller
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
Definition at line 13300 of file json.hpp.
◆ operator<=()
template<typename BasicJsonType >
comparison: less than or equal
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
Definition at line 13335 of file json.hpp.
◆ 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.
Definition at line 12946 of file json.hpp.
◆ 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.
Definition at line 12971 of file json.hpp.
◆ operator=() [3/3]
template<typename BasicJsonType >
◆ operator==()
template<typename BasicJsonType >
comparison: equal
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
Definition at line 13255 of file json.hpp.
◆ operator>()
template<typename BasicJsonType >
comparison: greater than
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
Definition at line 13344 of file json.hpp.
◆ operator>=()
template<typename BasicJsonType >
comparison: greater than or equal
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
Definition at line 13353 of file json.hpp.
◆ operator[]()
template<typename BasicJsonType >
access to successor
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
Definition at line 13470 of file json.hpp.
◆ set_end()
template<typename BasicJsonType >
set the iterator past the last value
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
Definition at line 13027 of file json.hpp.
◆ switch()
template<typename BasicJsonType >
◆ value()
template<typename BasicJsonType >
return the value of an iterator
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
Definition at line 13524 of file json.hpp.
◆ operator+
template<typename BasicJsonType >
addition of distance and iterator
- Precondition
- The iterator is initialized; i.e.
m_object != nullptr
.
Definition at line 13419 of file json.hpp.
◆ __pad0__
template<typename BasicJsonType >
◆ __pad1__
template<typename BasicJsonType >
◆ m_it
template<typename BasicJsonType >
the actual iterator of the associated instance
Definition at line 13533 of file json.hpp.
The documentation for this class was generated from the following file: