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 emplace (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: