lxgui
Classes | Public Types | Public Member Functions | List of all members
lxgui::utils::view::adaptor< ContainerType, Dereferencer, Filter > Class Template Reference

Allow iterating over a container without access to the container itself. More...

#include <utils_view.hpp>

Classes

class  iterator
 

Public Types

using base_iterator = std::conditional_t< std::is_const_v< ContainerType >, typename ContainerType::const_iterator, typename ContainerType::iterator >
 
using dereferencer = Dereferencer< base_iterator >
 
using filter = Filter< base_iterator >
 
using data_type = typename dereferencer::data_type
 

Public Member Functions

 adaptor (ContainerType &collection)
 
 adaptor (ContainerType &collection, dereferencer &&deref, filter &&filt)
 
 adaptor (const adaptor &other)
 
 adaptor (adaptor &&other)
 
adaptoroperator= (const adaptor &other)
 
adaptoroperator= (adaptor &&other)
 
iterator begin () const
 
iterator end () const
 

Detailed Description

template<typename ContainerType, template< typename > class Dereferencer, template< typename > class Filter>
class lxgui::utils::view::adaptor< ContainerType, Dereferencer, Filter >

Allow iterating over a container without access to the container itself.

Definition at line 60 of file utils_view.hpp.

Member Typedef Documentation

◆ base_iterator

template<typename ContainerType , template< typename > class Dereferencer, template< typename > class Filter>
using lxgui::utils::view::adaptor< ContainerType, Dereferencer, Filter >::base_iterator = std::conditional_t< std::is_const_v<ContainerType>, typename ContainerType::const_iterator, typename ContainerType::iterator>

Definition at line 62 of file utils_view.hpp.

◆ data_type

template<typename ContainerType , template< typename > class Dereferencer, template< typename > class Filter>
using lxgui::utils::view::adaptor< ContainerType, Dereferencer, Filter >::data_type = typename dereferencer::data_type

Definition at line 68 of file utils_view.hpp.

◆ dereferencer

template<typename ContainerType , template< typename > class Dereferencer, template< typename > class Filter>
using lxgui::utils::view::adaptor< ContainerType, Dereferencer, Filter >::dereferencer = Dereferencer<base_iterator>

Definition at line 66 of file utils_view.hpp.

◆ filter

template<typename ContainerType , template< typename > class Dereferencer, template< typename > class Filter>
using lxgui::utils::view::adaptor< ContainerType, Dereferencer, Filter >::filter = Filter<base_iterator>

Definition at line 67 of file utils_view.hpp.

Constructor & Destructor Documentation

◆ adaptor() [1/4]

template<typename ContainerType , template< typename > class Dereferencer, template< typename > class Filter>
lxgui::utils::view::adaptor< ContainerType, Dereferencer, Filter >::adaptor ( ContainerType &  collection)
inlineexplicit

Definition at line 70 of file utils_view.hpp.

◆ adaptor() [2/4]

template<typename ContainerType , template< typename > class Dereferencer, template< typename > class Filter>
lxgui::utils::view::adaptor< ContainerType, Dereferencer, Filter >::adaptor ( ContainerType &  collection,
dereferencer &&  deref,
filter &&  filt 
)
inlineexplicit

Definition at line 71 of file utils_view.hpp.

◆ adaptor() [3/4]

template<typename ContainerType , template< typename > class Dereferencer, template< typename > class Filter>
lxgui::utils::view::adaptor< ContainerType, Dereferencer, Filter >::adaptor ( const adaptor< ContainerType, Dereferencer, Filter > &  other)
inline

Definition at line 74 of file utils_view.hpp.

◆ adaptor() [4/4]

template<typename ContainerType , template< typename > class Dereferencer, template< typename > class Filter>
lxgui::utils::view::adaptor< ContainerType, Dereferencer, Filter >::adaptor ( adaptor< ContainerType, Dereferencer, Filter > &&  other)
inline

Definition at line 75 of file utils_view.hpp.

Member Function Documentation

◆ begin()

template<typename ContainerType , template< typename > class Dereferencer, template< typename > class Filter>
iterator lxgui::utils::view::adaptor< ContainerType, Dereferencer, Filter >::begin ( ) const
inline

Definition at line 123 of file utils_view.hpp.

◆ end()

template<typename ContainerType , template< typename > class Dereferencer, template< typename > class Filter>
iterator lxgui::utils::view::adaptor< ContainerType, Dereferencer, Filter >::end ( ) const
inline

Definition at line 131 of file utils_view.hpp.

◆ operator=() [1/2]

template<typename ContainerType , template< typename > class Dereferencer, template< typename > class Filter>
adaptor& lxgui::utils::view::adaptor< ContainerType, Dereferencer, Filter >::operator= ( adaptor< ContainerType, Dereferencer, Filter > &&  other)
inline

Definition at line 80 of file utils_view.hpp.

◆ operator=() [2/2]

template<typename ContainerType , template< typename > class Dereferencer, template< typename > class Filter>
adaptor& lxgui::utils::view::adaptor< ContainerType, Dereferencer, Filter >::operator= ( const adaptor< ContainerType, Dereferencer, Filter > &  other)
inline

Definition at line 76 of file utils_view.hpp.


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