Rhino C++ API  9.0
Public Member Functions | Static Public Member Functions | Friends | List of all members
ON_BitFlags< T > Class Template Reference

templated handler for scoped enums that represent bit flags More...

#include <opennurbs_cpp_base.h>

Public Member Functions

constexpr ON_BitFlags ()
 
constexpr ON_BitFlags (std::initializer_list< T > vs)
 
constexpr ON_BitFlags (T v)
 
constexpr bool Any () const
 
constexpr void Clear ()
 Clears all flag values. More...
 
constexpr bool IsSet (T v) const
 Checks if a specific flag is set. More...
 
constexpr operator bool () const
 
constexpr void Set (T v)
 Sets a single flag value. More...
 
constexpr UnderlyingT ToRaw () const
 Retrieve the raw underlying flags. More...
 
constexpr void Unset (T v)
 Unsets a single flag value. More...
 

Static Public Member Functions

static constexpr ON_BitFlags All ()
 
static constexpr ON_BitFlags FromRaw (UnderlyingT flags)
 Construct BitFlags from raw values. More...
 
static constexpr ON_BitFlags None ()
 

Friends

constexpr friend bool operator!= (const ON_BitFlags &lhs, const ON_BitFlags &rhs)
 
constexpr friend ON_BitFlags operator& (ON_BitFlags lhs, ON_BitFlags rhs)
 
constexpr friend ON_BitFlags operator& (ON_BitFlags lhs, T rhs)
 
constexpr friend ON_BitFlagsoperator&= (ON_BitFlags &lhs, ON_BitFlags rhs)
 
constexpr friend ON_BitFlagsoperator&= (ON_BitFlags &lhs, T rhs)
 
std::ostream & operator<< (std::ostream &os, const ON_BitFlags &bf)
 Stream output operator for debugging. More...
 
constexpr friend bool operator== (const ON_BitFlags &lhs, const ON_BitFlags &rhs)
 
constexpr friend ON_BitFlags operator^ (ON_BitFlags lhs, ON_BitFlags rhs)
 
constexpr friend ON_BitFlags operator^ (ON_BitFlags lhs, T rhs)
 
constexpr friend ON_BitFlagsoperator^= (ON_BitFlags &lhs, ON_BitFlags rhs)
 
constexpr friend ON_BitFlagsoperator^= (ON_BitFlags &lhs, T rhs)
 
constexpr friend ON_BitFlags operator| (ON_BitFlags lhs, ON_BitFlags rhs)
 
constexpr friend ON_BitFlags operator| (ON_BitFlags lhs, T rhs)
 
constexpr friend ON_BitFlagsoperator|= (ON_BitFlags &lhs, ON_BitFlags rhs)
 
constexpr friend ON_BitFlagsoperator|= (ON_BitFlags &lhs, T rhs)
 
constexpr friend ON_BitFlags operator~ (const ON_BitFlags &bf)
 

Detailed Description

template<typename T>
class ON_BitFlags< T >

templated handler for scoped enums that represent bit flags

Constructor & Destructor Documentation

◆ ON_BitFlags() [1/3]

template<typename T >
constexpr ON_BitFlags< T >::ON_BitFlags ( )
inlineconstexpr

◆ ON_BitFlags() [2/3]

template<typename T >
constexpr ON_BitFlags< T >::ON_BitFlags ( v)
inlineexplicitconstexpr

◆ ON_BitFlags() [3/3]

template<typename T >
constexpr ON_BitFlags< T >::ON_BitFlags ( std::initializer_list< T >  vs)
inlineconstexpr

Member Function Documentation

◆ All()

template<typename T >
static constexpr ON_BitFlags ON_BitFlags< T >::All ( )
inlinestaticconstexpr

◆ Any()

template<typename T >
constexpr bool ON_BitFlags< T >::Any ( ) const
inlineconstexpr

◆ Clear()

template<typename T >
constexpr void ON_BitFlags< T >::Clear ( )
inlineconstexpr

Clears all flag values.

◆ FromRaw()

template<typename T >
static constexpr ON_BitFlags ON_BitFlags< T >::FromRaw ( UnderlyingT  flags)
inlinestaticconstexpr

Construct BitFlags from raw values.

◆ IsSet()

template<typename T >
constexpr bool ON_BitFlags< T >::IsSet ( v) const
inlineconstexpr

Checks if a specific flag is set.

◆ None()

template<typename T >
static constexpr ON_BitFlags ON_BitFlags< T >::None ( )
inlinestaticconstexpr

◆ operator bool()

template<typename T >
constexpr ON_BitFlags< T >::operator bool ( ) const
inlineconstexpr

◆ Set()

template<typename T >
constexpr void ON_BitFlags< T >::Set ( v)
inlineconstexpr

Sets a single flag value.

◆ ToRaw()

template<typename T >
constexpr UnderlyingT ON_BitFlags< T >::ToRaw ( ) const
inlineconstexpr

Retrieve the raw underlying flags.

◆ Unset()

template<typename T >
constexpr void ON_BitFlags< T >::Unset ( v)
inlineconstexpr

Unsets a single flag value.

Friends And Related Function Documentation

◆ operator!=

template<typename T >
constexpr friend bool operator!= ( const ON_BitFlags< T > &  lhs,
const ON_BitFlags< T > &  rhs 
)
friend

◆ operator& [1/2]

template<typename T >
constexpr friend ON_BitFlags operator& ( ON_BitFlags< T >  lhs,
ON_BitFlags< T >  rhs 
)
friend

◆ operator& [2/2]

template<typename T >
constexpr friend ON_BitFlags operator& ( ON_BitFlags< T >  lhs,
rhs 
)
friend

◆ operator&= [1/2]

template<typename T >
constexpr friend ON_BitFlags& operator&= ( ON_BitFlags< T > &  lhs,
ON_BitFlags< T >  rhs 
)
friend

◆ operator&= [2/2]

template<typename T >
constexpr friend ON_BitFlags& operator&= ( ON_BitFlags< T > &  lhs,
rhs 
)
friend

◆ operator<<

template<typename T >
std::ostream& operator<< ( std::ostream &  os,
const ON_BitFlags< T > &  bf 
)
friend

Stream output operator for debugging.

Write out a bitset representation.

◆ operator==

template<typename T >
constexpr friend bool operator== ( const ON_BitFlags< T > &  lhs,
const ON_BitFlags< T > &  rhs 
)
friend

◆ operator^ [1/2]

template<typename T >
constexpr friend ON_BitFlags operator^ ( ON_BitFlags< T >  lhs,
ON_BitFlags< T >  rhs 
)
friend

◆ operator^ [2/2]

template<typename T >
constexpr friend ON_BitFlags operator^ ( ON_BitFlags< T >  lhs,
rhs 
)
friend

◆ operator^= [1/2]

template<typename T >
constexpr friend ON_BitFlags& operator^= ( ON_BitFlags< T > &  lhs,
ON_BitFlags< T >  rhs 
)
friend

◆ operator^= [2/2]

template<typename T >
constexpr friend ON_BitFlags& operator^= ( ON_BitFlags< T > &  lhs,
rhs 
)
friend

◆ operator| [1/2]

template<typename T >
constexpr friend ON_BitFlags operator| ( ON_BitFlags< T >  lhs,
ON_BitFlags< T >  rhs 
)
friend

◆ operator| [2/2]

template<typename T >
constexpr friend ON_BitFlags operator| ( ON_BitFlags< T >  lhs,
rhs 
)
friend

◆ operator|= [1/2]

template<typename T >
constexpr friend ON_BitFlags& operator|= ( ON_BitFlags< T > &  lhs,
ON_BitFlags< T >  rhs 
)
friend

◆ operator|= [2/2]

template<typename T >
constexpr friend ON_BitFlags& operator|= ( ON_BitFlags< T > &  lhs,
rhs 
)
friend

◆ operator~

template<typename T >
constexpr friend ON_BitFlags operator~ ( const ON_BitFlags< T > &  bf)
friend