diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2014-10-23 18:55:45 +0100 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2014-10-23 19:02:39 +0100 |
| commit | 3e797a3d152b59302365a7c11c5253292cd34ee7 (patch) | |
| tree | b9f9423e3216e38221272d8d1ca80215782ebde8 /src/buffer.hh | |
| parent | 5eb8989192445b0505933fcdb1c4f489d4bdc7f9 (diff) | |
centralize bit operation support for enum used as flags
Diffstat (limited to 'src/buffer.hh')
| -rw-r--r-- | src/buffer.hh | 30 |
1 files changed, 3 insertions, 27 deletions
diff --git a/src/buffer.hh b/src/buffer.hh index 4f0da060..70bb59b7 100644 --- a/src/buffer.hh +++ b/src/buffer.hh @@ -2,6 +2,7 @@ #define buffer_hh_INCLUDED #include "coord.hh" +#include "flags.hh" #include "hook_manager.hh" #include "option_manager.hh" #include "keymap_manager.hh" @@ -220,35 +221,10 @@ private: // Values are just data holding by the buffer, so it is part of its // observable state mutable ValueMap m_values; - - friend constexpr Flags operator|(Flags lhs, Flags rhs) - { - return (Flags)((int) lhs | (int) rhs); - } - - friend Flags& operator|=(Flags& lhs, Flags rhs) - { - (int&) lhs |= (int) rhs; - return lhs; - } - - friend constexpr bool operator&(Flags lhs, Flags rhs) - { - return ((int) lhs & (int) rhs) != 0; - } - - friend Flags& operator&=(Flags& lhs, Flags rhs) - { - (int&) lhs &= (int) rhs; - return lhs; - } - - friend constexpr Flags operator~(Flags lhs) - { - return (Flags)(~(int)lhs); - } }; +template<> struct WithBitOps<Buffer::Flags> : std::true_type {}; + } #include "buffer.inl.hh" |
