Ditto 4.8.0
Loading...
Searching...
No Matches
detail::iteration_proxy_value< IteratorType > Class Template Reference

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 (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
 
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_type & key () const
 return key of the iterator
 
IteratorType::reference value () const
 return value of the iterator