Helios Engine 0.1.0
A modular ECS based data-oriented C++23 game engine
 
Loading...
Searching...
No Matches
helios::ecs::EventIterator< T > Class Template Reference

Iterator wrapper for EventReader. More...

#include <event_reader.hpp>

Public Types

using value_type = std::tuple< std::remove_cvref_t< T > >
 
using iterator_category = std::forward_iterator_tag
 
using difference_type = ptrdiff_t
 
using pointer = const std::tuple< std::remove_cvref_t< T > > *
 
using reference = std::tuple< std::remove_cvref_t< T > >
 

Public Member Functions

constexpr EventIterator () noexcept=default
 
constexpr EventIterator (typename std::vector< std::remove_cvref_t< T > >::const_iterator iter) noexcept
 
constexpr EventIterator (const EventIterator &) noexcept=default
 
constexpr EventIterator (EventIterator &&) noexcept=default
 
constexpr ~EventIterator () noexcept=default
 
constexpr EventIteratoroperator= (const EventIterator &) noexcept=default
 
constexpr EventIteratoroperator= (EventIterator &&) noexcept=default
 
constexpr reference operator* () const noexcept
 
constexpr EventIteratoroperator++ () noexcept
 
constexpr EventIterator operator++ (int) noexcept
 
constexpr EventIteratoroperator-- () noexcept
 
constexpr EventIterator operator-- (int) noexcept
 
constexpr bool operator== (const EventIterator &other) const noexcept
 
constexpr bool operator!= (const EventIterator &other) const noexcept
 

Detailed Description

template<EventTrait T>
class helios::ecs::EventIterator< T >

Iterator wrapper for EventReader.

Template Parameters
TEvent type

Definition at line 90 of file event_reader.hpp.

Member Typedef Documentation

◆ difference_type

◆ iterator_category

template<EventTrait T>
using helios::ecs::EventIterator< T >::iterator_category = std::forward_iterator_tag

◆ pointer

template<EventTrait T>
using helios::ecs::EventIterator< T >::pointer = const std::tuple<std::remove_cvref_t<T> >*

◆ reference

template<EventTrait T>
using helios::ecs::EventIterator< T >::reference = std::tuple<std::remove_cvref_t<T> >

◆ value_type

template<EventTrait T>
using helios::ecs::EventIterator< T >::value_type = std::tuple<std::remove_cvref_t<T> >

Constructor & Destructor Documentation

◆ EventIterator() [1/4]

◆ EventIterator() [2/4]

template<EventTrait T>
constexpr helios::ecs::EventIterator< T >::EventIterator ( typename std::vector< std::remove_cvref_t< T > >::const_iterator  iter)
inlineexplicitconstexprnoexcept

Definition at line 99 of file event_reader.hpp.

100 : iter_(iter) {}
BasicQuery< World, Allocator, Components... > Query
Type alias for query with mutable world access.
Definition query.hpp:2481

◆ EventIterator() [3/4]

template<EventTrait T>
constexpr helios::ecs::EventIterator< T >::EventIterator ( const EventIterator< T > &  )
constexprdefaultnoexcept

◆ EventIterator() [4/4]

template<EventTrait T>
constexpr helios::ecs::EventIterator< T >::EventIterator ( EventIterator< T > &&  )
constexprdefaultnoexcept

◆ ~EventIterator()

Member Function Documentation

◆ operator!=()

template<EventTrait T>
constexpr bool helios::ecs::EventIterator< T >::operator!= ( const EventIterator< T > &  other) const
inlineconstexprnoexcept
Examples
/home/runner/work/HeliosEngine/HeliosEngine/src/core/include/helios/core/ecs/event_reader.hpp.

Definition at line 118 of file event_reader.hpp.

118{ return iter_ != other.iter_; }

◆ operator*()

template<EventTrait T>
constexpr reference helios::ecs::EventIterator< T >::operator* ( ) const
inlineconstexprnoexcept

◆ operator++() [1/2]

template<EventTrait T>
constexpr auto helios::ecs::EventIterator< T >::operator++ ( )
constexprnoexcept
Examples
/home/runner/work/HeliosEngine/HeliosEngine/src/core/include/helios/core/ecs/event_reader.hpp.

Definition at line 125 of file event_reader.hpp.

125 {
126 ++iter_;
127 return *this;
128}

◆ operator++() [2/2]

template<EventTrait T>
constexpr auto helios::ecs::EventIterator< T >::operator++ ( int  )
constexprnoexcept

Definition at line 131 of file event_reader.hpp.

131 {
132 auto temp = *this;
133 ++iter_;
134 return temp;
135}

◆ operator--() [1/2]

template<EventTrait T>
constexpr auto helios::ecs::EventIterator< T >::operator-- ( )
constexprnoexcept
Examples
/home/runner/work/HeliosEngine/HeliosEngine/src/core/include/helios/core/ecs/event_reader.hpp.

Definition at line 138 of file event_reader.hpp.

138 {
139 --iter_;
140 return *this;
141}

◆ operator--() [2/2]

template<EventTrait T>
constexpr auto helios::ecs::EventIterator< T >::operator-- ( int  )
constexprnoexcept

Definition at line 144 of file event_reader.hpp.

144 {
145 auto temp = *this;
146 --iter_;
147 return temp;
148}

◆ operator=() [1/2]

◆ operator=() [2/2]

template<EventTrait T>
constexpr EventIterator & helios::ecs::EventIterator< T >::operator= ( EventIterator< T > &&  )
constexprdefaultnoexcept

◆ operator==()

template<EventTrait T>
constexpr bool helios::ecs::EventIterator< T >::operator== ( const EventIterator< T > &  other) const
inlineconstexprnoexcept
Examples
/home/runner/work/HeliosEngine/HeliosEngine/src/core/include/helios/core/ecs/event_reader.hpp.

Definition at line 117 of file event_reader.hpp.

117{ return iter_ == other.iter_; }