From 47398785e1c88c0c4504519870ea6877dc00a5fa Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Mon, 22 Mar 2021 13:22:43 +0100 Subject: [PATCH] assert instead of exception to fix compiling on microcontroller --- src/cppbitmask.h | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/cppbitmask.h b/src/cppbitmask.h index 618b584..bc92126 100644 --- a/src/cppbitmask.h +++ b/src/cppbitmask.h @@ -2,7 +2,8 @@ // system includes #include -#include +#include +#include namespace cpputils { template @@ -32,16 +33,26 @@ public: case 'X': break; default: - throw std::logic_error{"Unknown characters in bit pattern input"}; + assert("Unknown characters in bit pattern input" && 0); } cur_bit >>= 1; } } + constexpr bool match(const T value) const + { + return (value & mask) == expected; + } + constexpr friend bool operator==(const T value, const basic_bit_pattern &pattern) { - return (value & pattern.mask) == pattern.expected; + return pattern.match(value); + } + + constexpr friend bool operator==(const basic_bit_pattern &pattern, const T value) + { + return pattern.match(value); } };