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.
더 자세히 ...
#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)
|
|
|
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
|
|
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.
- 주의
- 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)
◆ 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.
◆ iter_impl() [1/3]
template<typename BasicJsonType >
constructor for a given JSON instance
- 매개변수
-
[in] | object | pointer to a JSON object for this iterator |
- 전제조건
- object != nullptr
- 후미조건
- The iterator is initialized; i.e.
m_object != nullptr
.
◆ iter_impl() [2/3]
template<typename BasicJsonType >
const copy constructor
- 주의
- 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.
- 매개변수
-
[in] | other | const iterator to copy from |
- 주의
- 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() [3/3]
template<typename BasicJsonType >
converting constructor
- 매개변수
-
[in] | other | non-const iterator to copy from |
- 주의
- It is not checked whether other is initialized.
◆ key()
template<typename BasicJsonType >
return the key of an object iterator
- 전제조건
- The iterator is initialized; i.e.
m_object != nullptr
.
◆ operator!=()
template<typename BasicJsonType >
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>
comparison: not equal
- 전제조건
- (1) Both iterators are initialized to point to the same object, or (2) both iterators are value-initialized.
◆ operator*()
template<typename BasicJsonType >
return a reference to the value pointed to by the iterator
- 전제조건
- The iterator is initialized; i.e.
m_object != nullptr
.
◆ operator+()
template<typename BasicJsonType >
add to iterator
- 전제조건
- The iterator is initialized; i.e.
m_object != nullptr
.
◆ operator++() [1/2]
template<typename BasicJsonType >
pre-increment (++it)
- 전제조건
- The iterator is initialized; i.e.
m_object != nullptr
.
◆ operator++() [2/2]
template<typename BasicJsonType >
post-increment (it++)
- 전제조건
- The iterator is initialized; i.e.
m_object != nullptr
.
◆ operator+=()
template<typename BasicJsonType >
add to iterator
- 전제조건
- The iterator is initialized; i.e.
m_object != nullptr
.
◆ operator-() [1/2]
template<typename BasicJsonType >
return difference
- 전제조건
- The iterator is initialized; i.e.
m_object != nullptr
.
◆ operator-() [2/2]
template<typename BasicJsonType >
subtract from iterator
- 전제조건
- The iterator is initialized; i.e.
m_object != nullptr
.
◆ operator--() [1/2]
template<typename BasicJsonType >
pre-decrement (–it)
- 전제조건
- The iterator is initialized; i.e.
m_object != nullptr
.
◆ operator--() [2/2]
template<typename BasicJsonType >
post-decrement (it–)
- 전제조건
- The iterator is initialized; i.e.
m_object != nullptr
.
◆ operator-=()
template<typename BasicJsonType >
subtract from iterator
- 전제조건
- The iterator is initialized; i.e.
m_object != nullptr
.
◆ operator->()
template<typename BasicJsonType >
dereference the iterator
- 전제조건
- The iterator is initialized; i.e.
m_object != nullptr
.
◆ operator<()
template<typename BasicJsonType >
comparison: smaller
- 전제조건
- (1) Both iterators are initialized to point to the same object, or (2) both iterators are value-initialized.
◆ operator<=()
template<typename BasicJsonType >
comparison: less than or equal
- 전제조건
- (1) Both iterators are initialized to point to the same object, or (2) both iterators are value-initialized.
◆ operator=() [1/2]
template<typename BasicJsonType >
converting assignment
- 매개변수
-
[in] | other | const iterator to copy from |
- 반환값
- const/non-const iterator
- 주의
- It is not checked whether other is initialized.
◆ operator=() [2/2]
template<typename BasicJsonType >
converting assignment
- 매개변수
-
[in] | other | non-const iterator to copy from |
- 반환값
- const/non-const iterator
- 주의
- It is not checked whether other is initialized.
◆ operator==()
template<typename BasicJsonType >
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>
comparison: equal
- 전제조건
- (1) Both iterators are initialized to point to the same object, or (2) both iterators are value-initialized.
◆ operator>()
template<typename BasicJsonType >
comparison: greater than
- 전제조건
- (1) Both iterators are initialized to point to the same object, or (2) both iterators are value-initialized.
◆ operator>=()
template<typename BasicJsonType >
comparison: greater than or equal
- 전제조건
- (1) The iterator is initialized; i.e.
m_object != nullptr
, or (2) both iterators are value-initialized.
◆ operator[]()
template<typename BasicJsonType >
access to successor
- 전제조건
- The iterator is initialized; i.e.
m_object != nullptr
.
◆ set_end()
template<typename BasicJsonType >
set the iterator past the last value
- 전제조건
- The iterator is initialized; i.e.
m_object != nullptr
.
◆ value()
template<typename BasicJsonType >
return the value of an iterator
- 전제조건
- The iterator is initialized; i.e.
m_object != nullptr
.
◆ operator+
template<typename BasicJsonType >
addition of distance and iterator
- 전제조건
- The iterator is initialized; i.e.
m_object != nullptr
.
이 클래스에 대한 Documentation 페이지는 다음의 파일로부터 생성되었습니다.: