JSON for Modern C++  2.1.1
Public Types | Public Member Functions | Friends | List of all members
nlohmann::basic_json::iter_impl< U > Class Template Reference

a template for a random access iterator for the basic_json class More...

#include <json.hpp>

Public Types

using difference_type = typename basic_json::difference_type
 a type to represent differences between iterators More...
 
using iterator_category = std::bidirectional_iterator_tag
 the category of the iterator More...
 
using pointer = typename std::conditional< std::is_const< U >::value, typename basic_json::const_pointer, typename basic_json::pointer >::type
 defines a pointer to the type iterated over (value_type) More...
 
using reference = typename std::conditional< std::is_const< U >::value, typename basic_json::const_reference, typename basic_json::reference >::type
 defines a reference to the type iterated over (value_type) More...
 
using value_type = typename basic_json::value_type
 the type of the values when the iterator is dereferenced More...
 

Public Member Functions

 iter_impl ()=default
 default constructor More...
 
 iter_impl (pointer object) noexcept
 constructor for a given JSON instance More...
 
 iter_impl (const iter_impl &other) noexcept
 copy constructor More...
 
object_t::key_type key () const
 return the key of an object iterator More...
 
 operator const_iterator () const
 
bool operator!= (const iter_impl &other) const
 comparison: not equal More...
 
reference operator* () const
 return a reference to the value pointed to by the iterator More...
 
iter_impl operator+ (difference_type i)
 add to iterator More...
 
iter_impl operator++ (int)
 post-increment (it++) More...
 
iter_imploperator++ ()
 pre-increment (++it) More...
 
iter_imploperator+= (difference_type i)
 add to iterator More...
 
iter_impl operator- (difference_type i)
 subtract from iterator More...
 
difference_type operator- (const iter_impl &other) const
 return difference More...
 
iter_impl operator-- (int)
 post-decrement (it–) More...
 
iter_imploperator-- ()
 pre-decrement (–it) More...
 
iter_imploperator-= (difference_type i)
 subtract from iterator More...
 
pointer operator-> () const
 dereference the iterator More...
 
bool operator< (const iter_impl &other) const
 comparison: smaller More...
 
bool operator<= (const iter_impl &other) const
 comparison: less than or equal More...
 
iter_imploperator= (iter_impl other) noexcept(std::is_nothrow_move_constructible< pointer >::value andstd::is_nothrow_move_assignable< pointer >::value andstd::is_nothrow_move_constructible< internal_iterator >::value andstd::is_nothrow_move_assignable< internal_iterator >::value)
 copy assignment More...
 
bool operator== (const iter_impl &other) const
 comparison: equal More...
 
bool operator> (const iter_impl &other) const
 comparison: greater than More...
 
bool operator>= (const iter_impl &other) const
 comparison: greater than or equal More...
 
reference operator[] (difference_type n) const
 access to successor More...
 
reference value () const
 return the value of an iterator More...
 

Friends

class basic_json
 allow basic_json to access private members More...
 

Detailed Description

template<template< typename U, typename V, typename...Args > class ObjectType = std::map, template< typename U, typename...Args > class ArrayType = std::vector, class StringType = std::string, class BooleanType = bool, class NumberIntegerType = std::int64_t, class NumberUnsignedType = std::uint64_t, class NumberFloatType = double, template< typename U > class AllocatorType = std::allocator, template< typename T, typename SFINAE=void > class JSONSerializer = adl_serializer>
template<typename U>
class nlohmann::basic_json::iter_impl< U >

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.
Requirements
The class satisfies the following concept requirements:
  • RandomAccessIterator: The iterator that can be moved to point (forward and backward) to any element in constant time.
Since
version 1.0.0, simplified in version 2.0.9

Definition at line 1051 of file json.hpp.