Enables the usage of strongly typed enumerators as flags. More...
Collaboration diagram for Flag:
Classes | |
struct | boca::Flag< Enum > |
Mark a strongly typed enumerator as a flag. More... | |
Typedefs | |
template<typename Enum , typename Type > | |
using | boca::FlagReturn = typename std::enable_if< Flag< Enum >::enable, Type > |
Functions | |
template<typename Enum > | |
FlagReturn< Enum, typename std::underlying_type< Enum >::type >::type | boca::Underlying (Enum enum_1) |
template<typename Enum > | |
FlagReturn< Enum, Enum >::type | boca::operator& (Enum enum_1, Enum enum_2) |
template<typename Enum > | |
constexpr FlagReturn< Enum, Enum >::type | boca::operator| (Enum enum_1, Enum enum_2) |
template<typename Enum > | |
FlagReturn< Enum, Enum >::type | boca::operator^ (Enum enum_1, Enum enum_2) |
template<typename Enum > | |
FlagReturn< Enum, Enum >::type | boca::operator~ (Enum enum_1) |
template<typename Enum > | |
FlagReturn< Enum, Enum & >::type | boca::operator&= (Enum &enum_1, Enum enum_2) |
template<typename Enum > | |
FlagReturn< Enum, Enum & >::type | boca::operator|= (Enum &enum_1, Enum enum_2) |
template<typename Enum > | |
FlagReturn< Enum, Enum & >::type | boca::operator^= (Enum &enum_1, Enum enum_2) |
template<typename Enum > | |
FlagReturn< Enum, Enum & >::type | boca::operator<<= (Enum &enum_1, Enum enum_2) |
template<typename Enum > | |
FlagReturn< Enum, bool >::type | boca::to_bool (Enum value) |
template<typename Enum > | |
FlagReturn< Enum, bool >::type | boca::is (Enum enum_1, Enum enum_2) |
template<typename Enum , typename Function > | |
void | boca::FlagSwitch (Enum enum_1, Function function) |
Detailed Description
Enables the usage of strongly typed enumerators as flags.
Typedef Documentation
template<typename Enum , typename Type >
using boca::FlagReturn = typedef typename std::enable_if<Flag<Enum>::enable, Type> |
Function Documentation
template<typename Enum , typename Function >
void boca::FlagSwitch | ( | Enum | enum_1, |
Function | function | ||
) |
template<typename Enum >
FlagReturn<Enum, bool>::type boca::is | ( | Enum | enum_1, |
Enum | enum_2 | ||
) |
template<typename Enum >
FlagReturn<Enum, Enum>::type boca::operator& | ( | Enum | enum_1, |
Enum | enum_2 | ||
) |
template<typename Enum >
FlagReturn<Enum, Enum&>::type boca::operator&= | ( | Enum & | enum_1, |
Enum | enum_2 | ||
) |
template<typename Enum >
FlagReturn<Enum, Enum&>::type boca::operator<<= | ( | Enum & | enum_1, |
Enum | enum_2 | ||
) |
template<typename Enum >
FlagReturn<Enum, Enum>::type boca::operator^ | ( | Enum | enum_1, |
Enum | enum_2 | ||
) |
template<typename Enum >
FlagReturn<Enum, Enum&>::type boca::operator^= | ( | Enum & | enum_1, |
Enum | enum_2 | ||
) |
template<typename Enum >
constexpr FlagReturn<Enum, Enum>::type boca::operator| | ( | Enum | enum_1, |
Enum | enum_2 | ||
) |
template<typename Enum >
FlagReturn<Enum, Enum&>::type boca::operator|= | ( | Enum & | enum_1, |
Enum | enum_2 | ||
) |
template<typename Enum >
FlagReturn<Enum, Enum>::type boca::operator~ | ( | Enum | enum_1 | ) |
template<typename Enum >
FlagReturn<Enum, bool>::type boca::to_bool | ( | Enum | value | ) |
template<typename Enum >
FlagReturn<Enum, typename std::underlying_type<Enum>::type>::type boca::Underlying | ( | Enum | enum_1 | ) |