From 3e797a3d152b59302365a7c11c5253292cd34ee7 Mon Sep 17 00:00:00 2001 From: Maxime Coste Date: Thu, 23 Oct 2014 18:55:45 +0100 Subject: centralize bit operation support for enum used as flags --- src/parameters_parser.hh | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) (limited to 'src/parameters_parser.hh') 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 : 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) -- cgit v1.2.3