Elementa v8.0.0
Minimalistic library for any C++ application (C++11 and up)
Loading...
Searching...
No Matches
elementa::base::EnumExtPriv< BaseID, HelperIDString >::Combination Class Reference

A combination of several IDs. Not thread-safe. More...

Description

template<typename BaseID, class HelperIDString>
class elementa::base::EnumExtPriv< BaseID, HelperIDString >::Combination

A combination of several IDs. Not thread-safe.

Definition at line 164 of file enums.h.

#include "enums.h"

Classes

class  Iterator
 Iterator over the elements of a combination. More...
 

Public Types

using Initializer = std::initializer_list< BaseID >
 

Public Member Functions

bool operator!= (const Combination &o) const noexcept
 
bool operator== (const Combination &o) const noexcept
 
size_t size (void) const noexcept
 
bool empty (void) const noexcept
 
bool any (void) const
 
bool all (void) const
 
bool has (BaseID f) const
 
bool has (const Combination &otf) const
 
bool hasIntersection (const Combination &otf) const
 
void add (BaseID f)
 
void add (const Combination &tf)
 
void remove (BaseID f)
 
void remove (const Combination &tf)
 
std::string to_string (std::string delim=", ") const noexcept
 Return a string with the names of all the IDs in the combination. More...
 
Constructors
 Combination (void)=default
 
 ~Combination (void)=default
 
 Combination (const Combination &tf)=default
 
Combinationoperator= (const Combination &tf)=default
 
 Combination (Combination &&)=default
 
Combinationoperator= (Combination &&)=default
 
 Combination (BaseID f)
 
 Combination (const Initializer &init)
 Constructor from a set of flags. More...
 
For iterating on enum combinations
Iterator begin (void) const noexcept
 
Iterator end (void) const noexcept
 

Member Typedef Documentation

◆ Initializer

template<typename BaseID , class HelperIDString >
using elementa::base::EnumExtPriv< BaseID, HelperIDString >::Combination::Initializer = std::initializer_list<BaseID>

Definition at line 225 of file enums.h.

Constructor & Destructor Documentation

◆ Combination() [1/2]

template<typename BaseID , class HelperIDString >
elementa::base::EnumExtPriv< BaseID, HelperIDString >::Combination::Combination ( BaseID  f)
inlineexplicit

Definition at line 240 of file enums.h.

◆ Combination() [2/2]

template<typename BaseID , class HelperIDString >
elementa::base::EnumExtPriv< BaseID, HelperIDString >::Combination::Combination ( const Initializer &  init)
inline

Constructor from a set of flags.

It is not explicit, thus it can convert implicitly from a list of flag ids to the set of NamedFlags, without indicating the NamedFlags class, writing only the initializer list.

Definition at line 247 of file enums.h.

Member Function Documentation

◆ operator!=()

template<typename BaseID , class HelperIDString >
bool elementa::base::EnumExtPriv< BaseID, HelperIDString >::Combination::operator!= ( const Combination o) const
inlinenoexcept

Definition at line 252 of file enums.h.

◆ operator==()

template<typename BaseID , class HelperIDString >
bool elementa::base::EnumExtPriv< BaseID, HelperIDString >::Combination::operator== ( const Combination o) const
inlinenoexcept

Definition at line 254 of file enums.h.

◆ size()

template<typename BaseID , class HelperIDString >
size_t elementa::base::EnumExtPriv< BaseID, HelperIDString >::Combination::size ( void  ) const
inlinenoexcept

Definition at line 257 of file enums.h.

◆ empty()

template<typename BaseID , class HelperIDString >
bool elementa::base::EnumExtPriv< BaseID, HelperIDString >::Combination::empty ( void  ) const
inlinenoexcept

Definition at line 260 of file enums.h.

◆ any()

template<typename BaseID , class HelperIDString >
bool elementa::base::EnumExtPriv< BaseID, HelperIDString >::Combination::any ( void  ) const
inline

Definition at line 263 of file enums.h.

◆ all()

template<typename BaseID , class HelperIDString >
bool elementa::base::EnumExtPriv< BaseID, HelperIDString >::Combination::all ( void  ) const
inline

Definition at line 266 of file enums.h.

◆ has() [1/2]

template<typename BaseID , class HelperIDString >
bool elementa::base::EnumExtPriv< BaseID, HelperIDString >::Combination::has ( BaseID  f) const
inline

Definition at line 269 of file enums.h.

◆ has() [2/2]

template<typename BaseID , class HelperIDString >
bool elementa::base::EnumExtPriv< BaseID, HelperIDString >::Combination::has ( const Combination otf) const
inline

Definition at line 272 of file enums.h.

◆ hasIntersection()

template<typename BaseID , class HelperIDString >
bool elementa::base::EnumExtPriv< BaseID, HelperIDString >::Combination::hasIntersection ( const Combination otf) const
inline

Definition at line 275 of file enums.h.

◆ add() [1/2]

template<typename BaseID , class HelperIDString >
void elementa::base::EnumExtPriv< BaseID, HelperIDString >::Combination::add ( BaseID  f)
inline

Definition at line 278 of file enums.h.

◆ add() [2/2]

template<typename BaseID , class HelperIDString >
void elementa::base::EnumExtPriv< BaseID, HelperIDString >::Combination::add ( const Combination tf)
inline

Definition at line 281 of file enums.h.

◆ remove() [1/2]

template<typename BaseID , class HelperIDString >
void elementa::base::EnumExtPriv< BaseID, HelperIDString >::Combination::remove ( BaseID  f)
inline

Definition at line 284 of file enums.h.

◆ remove() [2/2]

template<typename BaseID , class HelperIDString >
void elementa::base::EnumExtPriv< BaseID, HelperIDString >::Combination::remove ( const Combination tf)
inline

Definition at line 287 of file enums.h.

◆ to_string()

template<typename BaseID , class HelperIDString >
std::string elementa::base::EnumExtPriv< BaseID, HelperIDString >::Combination::to_string ( std::string  delim = ", ") const
inlinenoexcept

Return a string with the names of all the IDs in the combination.

Definition at line 291 of file enums.h.

References elementa::base::EnumExtPriv< BaseID, HelperIDString >::IdName().

◆ begin()

template<typename BaseID , class HelperIDString >
Iterator elementa::base::EnumExtPriv< BaseID, HelperIDString >::Combination::begin ( void  ) const
inlinenoexcept

Definition at line 302 of file enums.h.

◆ end()

template<typename BaseID , class HelperIDString >
Iterator elementa::base::EnumExtPriv< BaseID, HelperIDString >::Combination::end ( void  ) const
inlinenoexcept

Definition at line 305 of file enums.h.


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