Public Types | Public Member Functions | Private Attributes

variant_iterator Class Reference

Iterator class for the variant. More...

#include <variant.hpp>

Collaboration diagram for variant_iterator:
Collaboration graph
[legend]

List of all members.

Public Types

enum  TYPE { TYPE_NULL, TYPE_LIST, TYPE_MAP }

Public Member Functions

 variant_iterator ()
 Constructor for a TYPE_NULL variant.
 variant_iterator (const std::vector< variant >::iterator &iter)
 Constructor for a TYPE_LIST variant.
 variant_iterator (const std::map< variant, variant >::iterator &iter)
 Constructor for a TYPE_MAP variant.
 variant_iterator (const variant_iterator &)
variant operator* () const
variant_iteratoroperator++ ()
variant_iterator operator++ (int)
variant_iteratoroperator= (const variant_iterator &that)
bool operator== (const variant_iterator &that) const
bool operator!= (const variant_iterator &that) const

Private Attributes

TYPE type_
std::vector< variant >::iterator list_iterator_
std::map< variant, variant >
::iterator 
map_iterator_

Detailed Description

Iterator class for the variant.

Depending on the type_ the list_iterator_ and the map_iterator_ are a valid iterator or singular. Since most actions on singular iterators result in Undefined Behaviour care should be taken when copying the list_iterator_ and map_iterator_.

Definition at line 181 of file variant.hpp.


Member Enumeration Documentation

Enumerator:
TYPE_NULL 
TYPE_LIST 
TYPE_MAP 

Definition at line 215 of file variant.hpp.


Constructor & Destructor Documentation

variant_iterator::variant_iterator (  ) 

Constructor for a TYPE_NULL variant.

Definition at line 84 of file variant.cpp.

variant_iterator::variant_iterator ( const std::vector< variant >::iterator &  iter  )  [explicit]

Constructor for a TYPE_LIST variant.

Precondition:
iter is not singular.
Parameters:
iter Iterator to initialize list_iterator_ with.

Definition at line 111 of file variant.cpp.

variant_iterator::variant_iterator ( const std::map< variant, variant >::iterator &  iter  )  [explicit]

Constructor for a TYPE_MAP variant.

Precondition:
iter is not singular.
Parameters:
iter Iterator to initialize map_iterator_ with.

Definition at line 119 of file variant.cpp.

variant_iterator::variant_iterator ( const variant_iterator iter  ) 

Definition at line 91 of file variant.cpp.

References list_iterator_, map_iterator_, type_, TYPE_LIST, TYPE_MAP, and TYPE_NULL.


Member Function Documentation

bool variant_iterator::operator!= ( const variant_iterator that  )  const

Definition at line 208 of file variant.cpp.

References list_iterator_, map_iterator_, type_, TYPE_LIST, TYPE_MAP, and TYPE_NULL.

variant variant_iterator::operator* (  )  const

Definition at line 127 of file variant.cpp.

References list_iterator_, map_iterator_, type_, TYPE_LIST, and TYPE_MAP.

variant_iterator & variant_iterator::operator++ (  ) 

Definition at line 141 of file variant.cpp.

References list_iterator_, map_iterator_, type_, TYPE_LIST, and TYPE_MAP.

variant_iterator variant_iterator::operator++ ( int   ) 

Definition at line 154 of file variant.cpp.

References list_iterator_, map_iterator_, type_, TYPE_LIST, and TYPE_MAP.

variant_iterator & variant_iterator::operator= ( const variant_iterator that  ) 

Definition at line 168 of file variant.cpp.

References list_iterator_, map_iterator_, type_, TYPE_LIST, TYPE_MAP, and TYPE_NULL.

bool variant_iterator::operator== ( const variant_iterator that  )  const

Definition at line 190 of file variant.cpp.

References list_iterator_, map_iterator_, type_, TYPE_LIST, TYPE_MAP, and TYPE_NULL.


Member Data Documentation

std::vector<variant>::iterator variant_iterator::list_iterator_ [private]

Definition at line 218 of file variant.hpp.

Referenced by operator!=(), operator*(), operator++(), operator=(), operator==(), and variant_iterator().

std::map<variant,variant>::iterator variant_iterator::map_iterator_ [private]

Definition at line 219 of file variant.hpp.

Referenced by operator!=(), operator*(), operator++(), operator=(), operator==(), and variant_iterator().

Definition at line 217 of file variant.hpp.

Referenced by operator!=(), operator*(), operator++(), operator=(), operator==(), and variant_iterator().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated by doxygen 1.7.1 on Thu May 24 2012 01:17:51 for The Battle for Wesnoth
Gna! | Forum | Wiki | CIA | devdocs