rttr::variant_associative_view::const_iterator Class Reference

The variant_associative_view::const_iterator allows iteration over an associative container in a variant. More...

#include <variant_associative_view.h>

Public Types

using self_type = const_iterator
 
using value_type = variant
 

Public Member Functions

 const_iterator (const const_iterator &other)
 Creates a copy of other. More...
 
 ~const_iterator ()
 Destroys the variant_associative_view::const_iterator. More...
 
const variant get_key () const
 Returns the current key, stored inside a std::reference_wrapper<T> and copied to a variant. More...
 
const variant get_value () const
 Returns the current value, stored inside a std::reference_wrapper<T> and copied to a variant. More...
 
bool operator!= (const const_iterator &other) const
 Returns true if other points to a different item than this iterator; otherwise returns false. More...
 
const std::pair< variant, variantoperator* () const
 Returns the underlying key and value stored in a std::pair<key, value>. More...
 
const_iterator operator+ (int i) const
 Returns an iterator to the item at i positions forward from this iterator. More...
 
const_iteratoroperator++ ()
 Pre-increment operator advances the iterator to the next item in the container and returns an iterator to the new current item. More...
 
const_iterator operator++ (int)
 Post-increment operator advances the iterator to the next item in the container and returns an iterator to the previously current item. More...
 
const_iteratoroperator+= (int i)
 Advances the iterator by i items. More...
 
const_iterator operator- (int i) const
 Returns an iterator to the item at i positions backward from this iterator. More...
 
const_iteratoroperator-- ()
 Pre-decrement operator makes the preceding item current and returns an iterator to the new current item. More...
 
const_iterator operator-- (int)
 Post-decrement operator makes the preceding item current and returns an iterator to the previously current item. More...
 
const_iteratoroperator-= (int i)
 Returns an iterator to the item at i positions backward from this iterator. More...
 
const_iteratoroperator= (const_iterator other)
 Assigns other to this. More...
 
bool operator== (const const_iterator &other) const
 Returns true if other points to the same item as this iterator; otherwise returns false. More...
 

Detailed Description

The variant_associative_view::const_iterator allows iteration over an associative container in a variant.

An instance can only be created by an variant_associative_view.

Typical Usage

std::map<int, std::string> my_map = { { 1, "one" }, { 2, "two" }, { 3, "three" } };
variant var = my_map;
if (var.is_associative_container())
{
variant_associative_view view = var.create_associative_view();
std::cout << view.get_size() << std::endl; // prints: '3'
for (const auto& item : view)
{
// remark that the key and value are stored inside a 'std::reference_wrapper'
std::cout << "Key: " << item.first.extract_wrapped_value().to_string() << " ";
std::cout << "Value: " << item.second.extract_wrapped_value().to_string() << std::endl;
}
}
Remarks
The iterator is valid as long as the variant_associative_view and it corresponding variant is valid and not modified.

Member Typedef Documentation

Constructor & Destructor Documentation

rttr::variant_associative_view::const_iterator::~const_iterator ( )
rttr::variant_associative_view::const_iterator::const_iterator ( const const_iterator other)

Creates a copy of other.

Member Function Documentation

const variant rttr::variant_associative_view::const_iterator::get_key ( ) const

Returns the current key, stored inside a std::reference_wrapper<T> and copied to a variant.

See also
variant::extract_wrapped_value(), variant::get_wrapped_value<T>()
const variant rttr::variant_associative_view::const_iterator::get_value ( ) const

Returns the current value, stored inside a std::reference_wrapper<T> and copied to a variant.

See also
variant::extract_wrapped_value(), variant::get_wrapped_value<T>()
bool rttr::variant_associative_view::const_iterator::operator!= ( const const_iterator other) const

Returns true if other points to a different item than this iterator; otherwise returns false.

See also
operator==
const std::pair<variant, variant> rttr::variant_associative_view::const_iterator::operator* ( ) const

Returns the underlying key and value stored in a std::pair<key, value>.

The actual data in the variant is stored inside a std::reference_wrapper<T>

See also
variant::extract_wrapped_value(), variant::get_wrapped_value<T>()
const_iterator rttr::variant_associative_view::const_iterator::operator+ ( int  i) const

Returns an iterator to the item at i positions forward from this iterator.

const_iterator& rttr::variant_associative_view::const_iterator::operator++ ( )

Pre-increment operator advances the iterator to the next item in the container and returns an iterator to the new current item.

Remarks
Calling this function on and iterator with value variant_associative_view::end() leads to undefined behaviour.
const_iterator rttr::variant_associative_view::const_iterator::operator++ ( int  )

Post-increment operator advances the iterator to the next item in the container and returns an iterator to the previously current item.

const_iterator& rttr::variant_associative_view::const_iterator::operator+= ( int  i)

Advances the iterator by i items.

const_iterator rttr::variant_associative_view::const_iterator::operator- ( int  i) const

Returns an iterator to the item at i positions backward from this iterator.

const_iterator& rttr::variant_associative_view::const_iterator::operator-- ( )

Pre-decrement operator makes the preceding item current and returns an iterator to the new current item.

Remarks
Calling this function on and iterator with value variant_associative_view::begin() leads to undefined behaviour.
const_iterator rttr::variant_associative_view::const_iterator::operator-- ( int  )

Post-decrement operator makes the preceding item current and returns an iterator to the previously current item.

const_iterator& rttr::variant_associative_view::const_iterator::operator-= ( int  i)

Returns an iterator to the item at i positions backward from this iterator.

const_iterator& rttr::variant_associative_view::const_iterator::operator= ( const_iterator  other)

Assigns other to this.

bool rttr::variant_associative_view::const_iterator::operator== ( const const_iterator other) const

Returns true if other points to the same item as this iterator; otherwise returns false.

See also
operator!=

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