0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-06-25 21:38:18 +02:00

ircd::util: Make the flag enum operators constexpr.

This commit is contained in:
Jason Volk 2016-09-04 06:42:45 -07:00
parent 8c537288d1
commit 22587f465d

View file

@ -132,6 +132,7 @@ auto lex_cast(Args&&... args)
*/
template<class Enum>
constexpr
typename std::enable_if<std::is_enum<Enum>::value, Enum>::type
operator~(const Enum &a)
{
@ -141,6 +142,7 @@ operator~(const Enum &a)
}
template<class Enum>
constexpr
typename std::enable_if<std::is_enum<Enum>::value, bool>::type
operator!(const Enum &a)
{
@ -150,6 +152,7 @@ operator!(const Enum &a)
}
template<class Enum>
constexpr
typename std::enable_if<std::is_enum<Enum>::value, Enum>::type
operator|(const Enum &a, const Enum &b)
{
@ -159,6 +162,7 @@ operator|(const Enum &a, const Enum &b)
}
template<class Enum>
constexpr
typename std::enable_if<std::is_enum<Enum>::value, Enum>::type
operator&(const Enum &a, const Enum &b)
{
@ -168,6 +172,7 @@ operator&(const Enum &a, const Enum &b)
}
template<class Enum>
constexpr
typename std::enable_if<std::is_enum<Enum>::value, Enum>::type
operator^(const Enum &a, const Enum &b)
{
@ -177,6 +182,7 @@ operator^(const Enum &a, const Enum &b)
}
template<class Enum>
constexpr
typename std::enable_if<std::is_enum<Enum>::value, Enum &>::type
operator|=(Enum &a, const Enum &b)
{
@ -186,6 +192,7 @@ operator|=(Enum &a, const Enum &b)
}
template<class Enum>
constexpr
typename std::enable_if<std::is_enum<Enum>::value, Enum &>::type
operator&=(Enum &a, const Enum &b)
{
@ -195,6 +202,7 @@ operator&=(Enum &a, const Enum &b)
}
template<class Enum>
constexpr
typename std::enable_if<std::is_enum<Enum>::value, Enum &>::type
operator^=(Enum &a, const Enum &b)
{