summaryrefslogtreecommitdiff
path: root/src/parameters_parser.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/parameters_parser.hh
parent5eb8989192445b0505933fcdb1c4f489d4bdc7f9 (diff)
centralize bit operation support for enum used as flags
Diffstat (limited to 'src/parameters_parser.hh')
-rw-r--r--src/parameters_parser.hh11
1 files changed, 3 insertions, 8 deletions
diff --git a/src/parameters_parser.hh b/src/parameters_parser.hh
index 219c9454..0082ada9 100644
--- a/src/parameters_parser.hh
+++ b/src/parameters_parser.hh
@@ -4,6 +4,7 @@
#include "exception.hh"
#include "id_map.hh"
#include "memoryview.hh"
+#include "flags.hh"
#include "string.hh"
namespace Kakoune
@@ -51,14 +52,6 @@ struct ParameterDesc
SwitchesOnlyAtStart = 1,
SwitchesAsPositional = 2,
};
- friend constexpr Flags operator|(Flags lhs, Flags rhs)
- {
- return (Flags)((int) lhs | (int) rhs);
- }
- friend constexpr bool operator&(Flags lhs, Flags rhs)
- {
- return ((int) lhs & (int) rhs) != 0;
- }
ParameterDesc() = default;
ParameterDesc(SwitchMap switches, Flags flags = Flags::None,
@@ -72,6 +65,8 @@ struct ParameterDesc
size_t max_positionals = -1;
};
+template<> struct WithBitOps<ParameterDesc::Flags> : std::true_type {};
+
// ParametersParser provides tools to parse command parameters.
// There are 3 types of parameters:
// * unnamed options, which are accessed by position (ignoring named ones)