summaryrefslogtreecommitdiff
path: root/src/buffer.hh
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2014-10-23 18:55:45 +0100
committerMaxime Coste <frrrwww@gmail.com>2014-10-23 19:02:39 +0100
commit3e797a3d152b59302365a7c11c5253292cd34ee7 (patch)
treeb9f9423e3216e38221272d8d1ca80215782ebde8 /src/buffer.hh
parent5eb8989192445b0505933fcdb1c4f489d4bdc7f9 (diff)
centralize bit operation support for enum used as flags
Diffstat (limited to 'src/buffer.hh')
-rw-r--r--src/buffer.hh30
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"