diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2015-05-25 13:51:17 +0100 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2015-05-25 13:51:17 +0100 |
| commit | b42de850314e7d76f873ddc7d64c5f7d2a30eb00 (patch) | |
| tree | 8968f1fed86a5e8fc7df2796450d028a722a17d0 /src/flags.hh | |
| parent | 41319d2708bb311b2bd0b82ec310ae985f9b5861 (diff) | |
Migrate code to c++14
Diffstat (limited to 'src/flags.hh')
| -rw-r--r-- | src/flags.hh | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/src/flags.hh b/src/flags.hh index 2b68751b..f3562d95 100644 --- a/src/flags.hh +++ b/src/flags.hh @@ -10,21 +10,18 @@ template<typename Flags> 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; +using EnableIfWithBitOps = std::enable_if_t<WithBitOps<Flags>::value>; template<typename Flags, typename = EnableIfWithBitOps<Flags>> constexpr Flags operator|(Flags lhs, Flags rhs) { - return (Flags)((UnderlyingType<Flags>) lhs | (UnderlyingType<Flags>) rhs); + return (Flags)((std::underlying_type_t<Flags>) lhs | (std::underlying_type_t<Flags>) rhs); } template<typename Flags, typename = EnableIfWithBitOps<Flags>> Flags& operator|=(Flags& lhs, Flags rhs) { - (UnderlyingType<Flags>&) lhs |= (UnderlyingType<Flags>) rhs; + (std::underlying_type_t<Flags>&) lhs |= (std::underlying_type_t<Flags>) rhs; return lhs; } @@ -32,27 +29,27 @@ template<typename Flags> struct TestableFlags { Flags value; - constexpr operator bool() const { return (UnderlyingType<Flags>)value; } + constexpr operator bool() const { return (std::underlying_type_t<Flags>)value; } constexpr operator Flags() const { return value; } }; template<typename Flags, typename = EnableIfWithBitOps<Flags>> constexpr TestableFlags<Flags> operator&(Flags lhs, Flags rhs) { - return { (Flags)((UnderlyingType<Flags>) lhs & (UnderlyingType<Flags>) rhs) }; + return { (Flags)((std::underlying_type_t<Flags>) lhs & (std::underlying_type_t<Flags>) rhs) }; } template<typename Flags, typename = EnableIfWithBitOps<Flags>> Flags& operator&=(Flags& lhs, Flags rhs) { - (UnderlyingType<Flags>&) lhs &= (UnderlyingType<Flags>) rhs; + (std::underlying_type_t<Flags>&) lhs &= (std::underlying_type_t<Flags>) rhs; return lhs; } template<typename Flags, typename = EnableIfWithBitOps<Flags>> constexpr Flags operator~(Flags lhs) { - return (Flags)(~(UnderlyingType<Flags>)lhs); + return (Flags)(~(std::underlying_type_t<Flags>)lhs); } } |
