Aeon Engine c550894
AeonGames Open Source Game Engine
Loading...
Searching...
No Matches
AeonGames::DependencyMap< Key, T, Hash, KeyEqual, MapAllocator, VectorAllocator >::iterator Class Reference

Mutable bidirectional iterator over topologically sorted entries. More...

#include <aeongames/DependencyMap.hpp>

Collaboration diagram for AeonGames::DependencyMap< Key, T, Hash, KeyEqual, MapAllocator, VectorAllocator >::iterator:
Collaboration graph

Public Types

using difference_type = typename std::vector<Key, VectorAllocator>::iterator::difference_type
 Iterator difference type.
using value_type = typename std::vector<Key, VectorAllocator>::iterator::value_type
 Iterator value type.
using reference = T &
 Reference to the mapped value type.
using pointer = T *
 Pointer to the mapped value type.
using iterator_category = std::bidirectional_iterator_tag
 Bidirectional iterator category.

Public Member Functions

 iterator (const iterator &)=default
 Copy constructor.
iterator & operator= (const iterator &)=default
 Copy assignment operator.
bool operator== (const iterator &i) const
 Equality comparison operator.
bool operator!= (const iterator &i) const
 Inequality comparison operator.
iterator & operator++ ()
 Pre-increment operator.
iterator & operator-- ()
 Pre-decrement operator.
reference operator* () const
 Dereference operator.
pointer operator-> () const
 Member access operator.
const Key & GetKey () const
 Get the key of the element this iterator points to.
const std::vector< Key, VectorAllocator > & GetDependencies () const
 Get the dependency list of the element this iterator points to.

Friends

class DependencyMap< Key, T, Hash, KeyEqual, MapAllocator, VectorAllocator >

Detailed Description

template<class Key, class T = Key, class Hash = std::hash<Key>, class KeyEqual = std::equal_to<Key>, class MapAllocator = std::allocator< std::pair<const Key, typename std::tuple < Key, size_t, std::vector<Key, std::allocator<Key >>, T >>>, class VectorAllocator = std::allocator<Key>>
class AeonGames::DependencyMap< Key, T, Hash, KeyEqual, MapAllocator, VectorAllocator >::iterator

Mutable bidirectional iterator over topologically sorted entries.

Definition at line 61 of file DependencyMap.hpp.

Member Typedef Documentation

◆ difference_type

template<class Key, class T = Key, class Hash = std::hash<Key>, class KeyEqual = std::equal_to<Key>, class MapAllocator = std::allocator< std::pair<const Key, typename std::tuple < Key, size_t, std::vector<Key, std::allocator<Key >>, T >>>, class VectorAllocator = std::allocator<Key>>
using AeonGames::DependencyMap< Key, T, Hash, KeyEqual, MapAllocator, VectorAllocator >::iterator::difference_type = typename std::vector<Key, VectorAllocator>::iterator::difference_type

Iterator difference type.

Definition at line 84 of file DependencyMap.hpp.

◆ iterator_category

template<class Key, class T = Key, class Hash = std::hash<Key>, class KeyEqual = std::equal_to<Key>, class MapAllocator = std::allocator< std::pair<const Key, typename std::tuple < Key, size_t, std::vector<Key, std::allocator<Key >>, T >>>, class VectorAllocator = std::allocator<Key>>
using AeonGames::DependencyMap< Key, T, Hash, KeyEqual, MapAllocator, VectorAllocator >::iterator::iterator_category = std::bidirectional_iterator_tag

Bidirectional iterator category.

Definition at line 88 of file DependencyMap.hpp.

◆ pointer

template<class Key, class T = Key, class Hash = std::hash<Key>, class KeyEqual = std::equal_to<Key>, class MapAllocator = std::allocator< std::pair<const Key, typename std::tuple < Key, size_t, std::vector<Key, std::allocator<Key >>, T >>>, class VectorAllocator = std::allocator<Key>>
using AeonGames::DependencyMap< Key, T, Hash, KeyEqual, MapAllocator, VectorAllocator >::iterator::pointer = T *

Pointer to the mapped value type.

Definition at line 87 of file DependencyMap.hpp.

◆ reference

template<class Key, class T = Key, class Hash = std::hash<Key>, class KeyEqual = std::equal_to<Key>, class MapAllocator = std::allocator< std::pair<const Key, typename std::tuple < Key, size_t, std::vector<Key, std::allocator<Key >>, T >>>, class VectorAllocator = std::allocator<Key>>
using AeonGames::DependencyMap< Key, T, Hash, KeyEqual, MapAllocator, VectorAllocator >::iterator::reference = T &

Reference to the mapped value type.

Definition at line 86 of file DependencyMap.hpp.

◆ value_type

template<class Key, class T = Key, class Hash = std::hash<Key>, class KeyEqual = std::equal_to<Key>, class MapAllocator = std::allocator< std::pair<const Key, typename std::tuple < Key, size_t, std::vector<Key, std::allocator<Key >>, T >>>, class VectorAllocator = std::allocator<Key>>
using AeonGames::DependencyMap< Key, T, Hash, KeyEqual, MapAllocator, VectorAllocator >::iterator::value_type = typename std::vector<Key, VectorAllocator>::iterator::value_type

Iterator value type.

Definition at line 85 of file DependencyMap.hpp.

Member Function Documentation

◆ GetDependencies()

template<class Key, class T = Key, class Hash = std::hash<Key>, class KeyEqual = std::equal_to<Key>, class MapAllocator = std::allocator< std::pair<const Key, typename std::tuple < Key, size_t, std::vector<Key, std::allocator<Key >>, T >>>, class VectorAllocator = std::allocator<Key>>
const std::vector< Key, VectorAllocator > & AeonGames::DependencyMap< Key, T, Hash, KeyEqual, MapAllocator, VectorAllocator >::iterator::GetDependencies ( ) const
inline

Get the dependency list of the element this iterator points to.

Returns
A const reference to the vector of dependency keys.

Definition at line 135 of file DependencyMap.hpp.

◆ GetKey()

template<class Key, class T = Key, class Hash = std::hash<Key>, class KeyEqual = std::equal_to<Key>, class MapAllocator = std::allocator< std::pair<const Key, typename std::tuple < Key, size_t, std::vector<Key, std::allocator<Key >>, T >>>, class VectorAllocator = std::allocator<Key>>
const Key & AeonGames::DependencyMap< Key, T, Hash, KeyEqual, MapAllocator, VectorAllocator >::iterator::GetKey ( ) const
inline

Get the key of the element this iterator points to.

Returns
A const reference to the key.

Definition at line 129 of file DependencyMap.hpp.

◆ operator!=()

template<class Key, class T = Key, class Hash = std::hash<Key>, class KeyEqual = std::equal_to<Key>, class MapAllocator = std::allocator< std::pair<const Key, typename std::tuple < Key, size_t, std::vector<Key, std::allocator<Key >>, T >>>, class VectorAllocator = std::allocator<Key>>
bool AeonGames::DependencyMap< Key, T, Hash, KeyEqual, MapAllocator, VectorAllocator >::iterator::operator!= ( const iterator & i) const
inline

Inequality comparison operator.

Definition at line 101 of file DependencyMap.hpp.

◆ operator*()

template<class Key, class T = Key, class Hash = std::hash<Key>, class KeyEqual = std::equal_to<Key>, class MapAllocator = std::allocator< std::pair<const Key, typename std::tuple < Key, size_t, std::vector<Key, std::allocator<Key >>, T >>>, class VectorAllocator = std::allocator<Key>>
reference AeonGames::DependencyMap< Key, T, Hash, KeyEqual, MapAllocator, VectorAllocator >::iterator::operator* ( ) const
inline

Dereference operator.

Definition at line 118 of file DependencyMap.hpp.

◆ operator++()

template<class Key, class T = Key, class Hash = std::hash<Key>, class KeyEqual = std::equal_to<Key>, class MapAllocator = std::allocator< std::pair<const Key, typename std::tuple < Key, size_t, std::vector<Key, std::allocator<Key >>, T >>>, class VectorAllocator = std::allocator<Key>>
iterator & AeonGames::DependencyMap< Key, T, Hash, KeyEqual, MapAllocator, VectorAllocator >::iterator::operator++ ( )
inline

Pre-increment operator.

Definition at line 106 of file DependencyMap.hpp.

◆ operator--()

template<class Key, class T = Key, class Hash = std::hash<Key>, class KeyEqual = std::equal_to<Key>, class MapAllocator = std::allocator< std::pair<const Key, typename std::tuple < Key, size_t, std::vector<Key, std::allocator<Key >>, T >>>, class VectorAllocator = std::allocator<Key>>
iterator & AeonGames::DependencyMap< Key, T, Hash, KeyEqual, MapAllocator, VectorAllocator >::iterator::operator-- ( )
inline

Pre-decrement operator.

Definition at line 112 of file DependencyMap.hpp.

◆ operator->()

template<class Key, class T = Key, class Hash = std::hash<Key>, class KeyEqual = std::equal_to<Key>, class MapAllocator = std::allocator< std::pair<const Key, typename std::tuple < Key, size_t, std::vector<Key, std::allocator<Key >>, T >>>, class VectorAllocator = std::allocator<Key>>
pointer AeonGames::DependencyMap< Key, T, Hash, KeyEqual, MapAllocator, VectorAllocator >::iterator::operator-> ( ) const
inline

Member access operator.

Definition at line 123 of file DependencyMap.hpp.

◆ operator==()

template<class Key, class T = Key, class Hash = std::hash<Key>, class KeyEqual = std::equal_to<Key>, class MapAllocator = std::allocator< std::pair<const Key, typename std::tuple < Key, size_t, std::vector<Key, std::allocator<Key >>, T >>>, class VectorAllocator = std::allocator<Key>>
bool AeonGames::DependencyMap< Key, T, Hash, KeyEqual, MapAllocator, VectorAllocator >::iterator::operator== ( const iterator & i) const
inline

Equality comparison operator.

Definition at line 96 of file DependencyMap.hpp.

◆ DependencyMap< Key, T, Hash, KeyEqual, MapAllocator, VectorAllocator >

template<class Key, class T = Key, class Hash = std::hash<Key>, class KeyEqual = std::equal_to<Key>, class MapAllocator = std::allocator< std::pair<const Key, typename std::tuple < Key, size_t, std::vector<Key, std::allocator<Key >>, T >>>, class VectorAllocator = std::allocator<Key>>
friend class DependencyMap< Key, T, Hash, KeyEqual, MapAllocator, VectorAllocator >
friend

Definition at line 70 of file DependencyMap.hpp.


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