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/parameters_parser.hh | |
| parent | 5eb8989192445b0505933fcdb1c4f489d4bdc7f9 (diff) | |
centralize bit operation support for enum used as flags
Diffstat (limited to 'src/parameters_parser.hh')
| -rw-r--r-- | src/parameters_parser.hh | 11 |
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) |
