FLANG
Public Types | Public Member Functions | Static Public Member Functions | List of all members
Fortran::common::EnumSet< ENUM, BITS > Class Template Reference

Public Types

using bitsetType = std::conditional_t<(BITS<=64), common::BitSet< BITS >, std::bitset< BITS > >
 
using enumerationType = ENUM
 

Public Member Functions

constexpr EnumSet (const std::initializer_list< enumerationType > &enums)
 
constexpr EnumSet (const EnumSet &)=default
 
constexpr EnumSet (EnumSet &&)=default
 
constexpr EnumSetoperator= (const EnumSet &)=default
 
constexpr EnumSetoperator= (EnumSet &&)=default
 
const bitsetType & bitset () const
 
constexpr EnumSetoperator&= (const EnumSet &that)
 
constexpr EnumSetoperator&= (EnumSet &&that)
 
constexpr EnumSetoperator|= (const EnumSet &that)
 
constexpr EnumSetoperator|= (EnumSet &&that)
 
constexpr EnumSetoperator^= (const EnumSet &that)
 
constexpr EnumSetoperator^= (EnumSet &&that)
 
constexpr EnumSet operator~ () const
 
constexpr EnumSet operator& (const EnumSet &that) const
 
constexpr EnumSet operator& (EnumSet &&that) const
 
constexpr EnumSet operator| (const EnumSet &that) const
 
constexpr EnumSet operator| (EnumSet &&that) const
 
constexpr EnumSet operator^ (const EnumSet &that) const
 
constexpr EnumSet operator^ (EnumSet &&that) const
 
constexpr EnumSet operator+ (enumerationType v) const
 
constexpr EnumSet operator- (enumerationType v) const
 
constexpr bool operator== (const EnumSet &that) const
 
constexpr bool operator== (EnumSet &&that) const
 
constexpr bool operator!= (const EnumSet &that) const
 
constexpr bool operator!= (EnumSet &&that) const
 
constexpr bool test (enumerationType x) const
 
constexpr bool all () const
 
constexpr bool any () const
 
constexpr bool none () const
 
constexpr std::size_t count () const
 
constexpr std::size_t count (enumerationType x) const
 
constexpr EnumSetset ()
 
constexpr EnumSetset (enumerationType x, bool value=true)
 
constexpr EnumSetreset ()
 
constexpr EnumSetreset (enumerationType x)
 
constexpr EnumSetflip ()
 
constexpr EnumSetflip (enumerationType x)
 
constexpr bool empty () const
 
void clear ()
 
void insert (enumerationType x)
 
void insert (enumerationType &&x)
 
void emplace (enumerationType &&x)
 
void erase (enumerationType x)
 
void erase (enumerationType &&x)
 
constexpr std::optional< enumerationType > LeastElement () const
 
template<typename FUNC >
void IterateOverMembers (const FUNC &f) const
 
template<typename STREAM >
STREAM & Dump (STREAM &o, std::string_view EnumToString(enumerationType)) const
 

Static Public Member Functions

static constexpr std::size_t max_size ()
 

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