entttree 0.1.0
Hierarchical entity management for EnTT
Loading...
Searching...
No Matches
entttree::MaybeGenerator< G > Struct Template Reference

A wrapper around an optional Generator. More...

#include <generator.h>

Public Types

using Value = decltype(*std::declval< G >())
 

Public Member Functions

 MaybeGenerator (G &&gen)
 
 MaybeGenerator (const G &gen)
 
 MaybeGenerator (const MaybeGenerator &)=default
 
 MaybeGenerator (MaybeGenerator &&)=default
 
MaybeGeneratoroperator= (const MaybeGenerator &)=default
 
MaybeGeneratoroperator= (MaybeGenerator &&)=default
 
bool next ()
 
MaybeGeneratoroperator++ ()
 
auto operator* () const
 
auto operator-> () const
 
auto operator* ()
 
auto operator-> ()
 
bool is_valid () const
 
 operator bool () const
 

Public Attributes

std::optional< Ggenerator = std::nullopt
 

Detailed Description

template<typename G>
struct entttree::MaybeGenerator< G >

A wrapper around an optional Generator.

If the inner generator is absent, MaybeGenerator behaves as an empty (immediately exhausted) generator. This is useful in traversal adaptors like prune_if(), where a node may or may not produce successors.

Template Parameters
GThe generator type to wrap.

Definition at line 177 of file generator.h.

Member Typedef Documentation

◆ Value

template<typename G >
using entttree::MaybeGenerator< G >::Value = decltype(*std::declval<G>())

Definition at line 180 of file generator.h.

Constructor & Destructor Documentation

◆ MaybeGenerator() [1/2]

template<typename G >
entttree::MaybeGenerator< G >::MaybeGenerator ( G &&  gen)
inline

Definition at line 184 of file generator.h.

◆ MaybeGenerator() [2/2]

template<typename G >
entttree::MaybeGenerator< G >::MaybeGenerator ( const G gen)
inline

Definition at line 185 of file generator.h.

Member Function Documentation

◆ is_valid()

template<typename G >
bool entttree::MaybeGenerator< G >::is_valid ( ) const
inline

Definition at line 209 of file generator.h.

◆ next()

template<typename G >
bool entttree::MaybeGenerator< G >::next ( )
inline

Definition at line 193 of file generator.h.

◆ operator bool()

template<typename G >
entttree::MaybeGenerator< G >::operator bool ( ) const
inline

Definition at line 214 of file generator.h.

◆ operator*() [1/2]

template<typename G >
auto entttree::MaybeGenerator< G >::operator* ( )
inline

Definition at line 206 of file generator.h.

◆ operator*() [2/2]

template<typename G >
auto entttree::MaybeGenerator< G >::operator* ( ) const
inline

Definition at line 204 of file generator.h.

◆ operator++()

template<typename G >
MaybeGenerator & entttree::MaybeGenerator< G >::operator++ ( )
inline

Definition at line 199 of file generator.h.

◆ operator->() [1/2]

template<typename G >
auto entttree::MaybeGenerator< G >::operator-> ( )
inline

Definition at line 207 of file generator.h.

◆ operator->() [2/2]

template<typename G >
auto entttree::MaybeGenerator< G >::operator-> ( ) const
inline

Definition at line 205 of file generator.h.

Member Data Documentation

◆ generator

template<typename G >
std::optional<G> entttree::MaybeGenerator< G >::generator = std::nullopt

Definition at line 178 of file generator.h.


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