PeriDyno 1.2.1
Loading...
Searching...
No Matches
detail::iteration_proxy_value< IteratorType > Class Template Reference

#include <json.hpp>

Public Types

using difference_type = std::ptrdiff_t
 
using value_type = iteration_proxy_value
 
using pointer = value_type*
 
using reference = value_type&
 
using iterator_category = std::input_iterator_tag
 
using string_type = typename std::remove_cv< typename std::remove_reference<decltype(std::declval<IteratorType>().key()) >::type >::type
 

Public Member Functions

 iteration_proxy_value ()=default
 
 iteration_proxy_value (IteratorType it, std::size_t array_index_=0) noexcept(std::is_nothrow_move_constructible< IteratorType >::value &&std::is_nothrow_default_constructible< string_type >::value)
 
 iteration_proxy_value (iteration_proxy_value const &)=default
 
iteration_proxy_valueoperator= (iteration_proxy_value const &)=default
 
 iteration_proxy_value (iteration_proxy_value &&) noexcept(std::is_nothrow_move_constructible< IteratorType >::value &&std::is_nothrow_move_constructible< string_type >::value)=default
 
iteration_proxy_valueoperator= (iteration_proxy_value &&) noexcept(std::is_nothrow_move_assignable< IteratorType >::value &&std::is_nothrow_move_assignable< string_type >::value)=default
 
 ~iteration_proxy_value ()=default
 
const iteration_proxy_valueoperator* () const
 dereference operator (needed for range-based for)
 
iteration_proxy_valueoperator++ ()
 increment operator (needed for range-based for)
 
iteration_proxy_value operator++ (int) &
 
bool operator== (const iteration_proxy_value &o) const
 equality operator (needed for InputIterator)
 
bool operator!= (const iteration_proxy_value &o) const
 inequality operator (needed for range-based for)
 
const string_typekey () const
 return key of the iterator
 
IteratorType::reference value () const
 return value of the iterator
 

Private Attributes

IteratorType anchor {}
 the iterator
 
std::size_t array_index = 0
 an index for arrays (used to create key names)
 
std::size_t array_index_last = 0
 last stringified array index
 
string_type array_index_str = "0"
 a string representation of the array index
 
string_type empty_str {}
 an empty string (to return a reference for primitive values)
 

Detailed Description

template<typename IteratorType>
class detail::iteration_proxy_value< IteratorType >

Definition at line 5186 of file json.hpp.

Member Typedef Documentation

◆ difference_type

template<typename IteratorType>
using detail::iteration_proxy_value< IteratorType >::difference_type = std::ptrdiff_t

Definition at line 5189 of file json.hpp.

◆ iterator_category

template<typename IteratorType>
using detail::iteration_proxy_value< IteratorType >::iterator_category = std::input_iterator_tag

Definition at line 5193 of file json.hpp.

◆ pointer

template<typename IteratorType>
using detail::iteration_proxy_value< IteratorType >::pointer = value_type*

Definition at line 5191 of file json.hpp.

◆ reference

template<typename IteratorType>
using detail::iteration_proxy_value< IteratorType >::reference = value_type&

Definition at line 5192 of file json.hpp.

◆ string_type

template<typename IteratorType>
using detail::iteration_proxy_value< IteratorType >::string_type = typename std::remove_cv< typename std::remove_reference<decltype(std::declval<IteratorType>().key()) >::type >::type

Definition at line 5194 of file json.hpp.

◆ value_type

template<typename IteratorType>
using detail::iteration_proxy_value< IteratorType >::value_type = iteration_proxy_value

Definition at line 5190 of file json.hpp.

Constructor & Destructor Documentation

◆ iteration_proxy_value() [1/4]

template<typename IteratorType>
detail::iteration_proxy_value< IteratorType >::iteration_proxy_value ( )
explicitdefault
Here is the caller graph for this function:

◆ iteration_proxy_value() [2/4]

template<typename IteratorType>
detail::iteration_proxy_value< IteratorType >::iteration_proxy_value ( IteratorType it,
std::size_t array_index_ = 0 )
inlineexplicitnoexcept

Definition at line 5210 of file json.hpp.

Here is the call graph for this function:

◆ iteration_proxy_value() [3/4]

template<typename IteratorType>
detail::iteration_proxy_value< IteratorType >::iteration_proxy_value ( iteration_proxy_value< IteratorType > const & )
default
Here is the call graph for this function:

◆ iteration_proxy_value() [4/4]

template<typename IteratorType>
detail::iteration_proxy_value< IteratorType >::iteration_proxy_value ( iteration_proxy_value< IteratorType > && ) const &&
defaultnoexcept
Here is the call graph for this function:

◆ ~iteration_proxy_value()

template<typename IteratorType>
detail::iteration_proxy_value< IteratorType >::~iteration_proxy_value ( )
default
Here is the call graph for this function:

Member Function Documentation

◆ key()

template<typename IteratorType>
const string_type & detail::iteration_proxy_value< IteratorType >::key ( ) const
inline

return key of the iterator

Definition at line 5264 of file json.hpp.

Here is the call graph for this function:

◆ operator!=()

template<typename IteratorType>
bool detail::iteration_proxy_value< IteratorType >::operator!= ( const iteration_proxy_value< IteratorType > & o) const
inline

inequality operator (needed for range-based for)

Definition at line 5258 of file json.hpp.

Here is the call graph for this function:

◆ operator*()

template<typename IteratorType>
const iteration_proxy_value & detail::iteration_proxy_value< IteratorType >::operator* ( ) const
inline

dereference operator (needed for range-based for)

Definition at line 5229 of file json.hpp.

Here is the call graph for this function:

◆ operator++() [1/2]

template<typename IteratorType>
iteration_proxy_value & detail::iteration_proxy_value< IteratorType >::operator++ ( )
inline

increment operator (needed for range-based for)

Definition at line 5235 of file json.hpp.

Here is the call graph for this function:

◆ operator++() [2/2]

template<typename IteratorType>
iteration_proxy_value detail::iteration_proxy_value< IteratorType >::operator++ ( int ) &
inline

Definition at line 5243 of file json.hpp.

Here is the call graph for this function:

◆ operator=() [1/2]

template<typename IteratorType>
iteration_proxy_value & detail::iteration_proxy_value< IteratorType >::operator= ( iteration_proxy_value< IteratorType > && ) &&
defaultnoexcept
Here is the call graph for this function:

◆ operator=() [2/2]

template<typename IteratorType>
iteration_proxy_value & detail::iteration_proxy_value< IteratorType >::operator= ( iteration_proxy_value< IteratorType > const & )
default
Here is the call graph for this function:

◆ operator==()

template<typename IteratorType>
bool detail::iteration_proxy_value< IteratorType >::operator== ( const iteration_proxy_value< IteratorType > & o) const
inline

equality operator (needed for InputIterator)

Definition at line 5252 of file json.hpp.

Here is the call graph for this function:

◆ value()

template<typename IteratorType>
IteratorType::reference detail::iteration_proxy_value< IteratorType >::value ( ) const
inline

return value of the iterator

Definition at line 5300 of file json.hpp.

Here is the caller graph for this function:

Member Data Documentation

◆ anchor

template<typename IteratorType>
IteratorType detail::iteration_proxy_value< IteratorType >::anchor {}
private

the iterator

Definition at line 5198 of file json.hpp.

◆ array_index

template<typename IteratorType>
std::size_t detail::iteration_proxy_value< IteratorType >::array_index = 0
private

an index for arrays (used to create key names)

Definition at line 5200 of file json.hpp.

◆ array_index_last

template<typename IteratorType>
std::size_t detail::iteration_proxy_value< IteratorType >::array_index_last = 0
mutableprivate

last stringified array index

Definition at line 5202 of file json.hpp.

◆ array_index_str

template<typename IteratorType>
string_type detail::iteration_proxy_value< IteratorType >::array_index_str = "0"
mutableprivate

a string representation of the array index

Definition at line 5204 of file json.hpp.

◆ empty_str

template<typename IteratorType>
string_type detail::iteration_proxy_value< IteratorType >::empty_str {}
private

an empty string (to return a reference for primitive values)

Definition at line 5206 of file json.hpp.


The documentation for this class was generated from the following file: