summaryrefslogtreecommitdiff
path: root/src/flags.hh
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2015-11-20 08:50:53 +0000
committerMaxime Coste <frrrwww@gmail.com>2015-11-20 09:06:53 +0000
commit5e4f5cd2a01605bdbce062011d15318d089da6c9 (patch)
tree8cd504c586bd99d96360cb2119a13fb40c13b54c /src/flags.hh
parentc0f1b7b99f6b882e9622f41e1ff05f927210ce90 (diff)
Move enum option handling in enum.hh and refactor enum options
Diffstat (limited to 'src/flags.hh')
-rw-r--r--src/flags.hh7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/flags.hh b/src/flags.hh
index 2b68751b..6b72ba05 100644
--- a/src/flags.hh
+++ b/src/flags.hh
@@ -12,8 +12,11 @@ struct WithBitOps : std::false_type {};
template<typename Flags>
using UnderlyingType = typename std::underlying_type<Flags>::type;
-template<typename Flags>
-using EnableIfWithBitOps = typename std::enable_if<WithBitOps<Flags>::value>::type;
+template<typename Flags, typename T = void>
+using EnableIfWithBitOps = typename std::enable_if<WithBitOps<Flags>::value, T>::type;
+
+template<typename Flags, typename T = void>
+using EnableIfWithoutBitOps = typename std::enable_if<not WithBitOps<Flags>::value, T>::type;
template<typename Flags, typename = EnableIfWithBitOps<Flags>>
constexpr Flags operator|(Flags lhs, Flags rhs)