aboutsummaryrefslogtreecommitdiff
path: root/thirdparty/raw_pdb/src/Foundation/PDB_BitOperators.h
diff options
context:
space:
mode:
Diffstat (limited to 'thirdparty/raw_pdb/src/Foundation/PDB_BitOperators.h')
-rw-r--r--thirdparty/raw_pdb/src/Foundation/PDB_BitOperators.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/thirdparty/raw_pdb/src/Foundation/PDB_BitOperators.h b/thirdparty/raw_pdb/src/Foundation/PDB_BitOperators.h
new file mode 100644
index 000000000..04f17a44b
--- /dev/null
+++ b/thirdparty/raw_pdb/src/Foundation/PDB_BitOperators.h
@@ -0,0 +1,23 @@
+// Copyright 2011-2022, Molecular Matters GmbH <[email protected]>
+// See LICENSE.txt for licensing details (2-clause BSD License: https://opensource.org/licenses/BSD-2-Clause)
+
+#pragma once
+
+#include "PDB_Macros.h"
+
+
+#define PDB_DEFINE_BIT_OPERATORS(_type) \
+ PDB_NO_DISCARD inline constexpr _type operator|(_type lhs, _type rhs) PDB_NO_EXCEPT \
+ { \
+ return static_cast<_type>(PDB_AS_UNDERLYING(lhs) | PDB_AS_UNDERLYING(rhs)); \
+ } \
+ \
+ PDB_NO_DISCARD inline constexpr _type operator&(_type lhs, _type rhs) PDB_NO_EXCEPT \
+ { \
+ return static_cast<_type>(PDB_AS_UNDERLYING(lhs) & PDB_AS_UNDERLYING(rhs)); \
+ } \
+ \
+ PDB_NO_DISCARD inline constexpr _type operator~(_type value) PDB_NO_EXCEPT \
+ { \
+ return static_cast<_type>(~PDB_AS_UNDERLYING(value)); \
+ }