Belle II Software  release-05-02-19
BitMask.h
1 #pragma once
2 
4 #define ADD_BITMASK_OPERATORS(Bitmask) \
5  \
6  inline Bitmask operator| (Bitmask x , Bitmask y ) \
7  { return static_cast<Bitmask>( static_cast<int>(x) \
8  | static_cast<int>(y)); } \
9  \
10  inline Bitmask operator& (Bitmask x , Bitmask y ) \
11  { return static_cast<Bitmask>( static_cast<int>(x) \
12  & static_cast<int>(y)); } \
13  \
14  inline Bitmask operator^ (Bitmask x , Bitmask y ) \
15  { return static_cast<Bitmask>( static_cast<int>(x) \
16  ^ static_cast<int>(y)); } \
17  \
18  inline Bitmask operator~ (Bitmask x ) \
19  { return static_cast<Bitmask>(~static_cast<int>(x)); } \
20  \
21  inline Bitmask & operator&=(Bitmask & x , Bitmask y) \
22  { x = x & y ; return x ; } \
23  \
24  inline Bitmask & operator|=(Bitmask & x , Bitmask y) \
25  { x = x | y ; return x ; } \
26  \
27  inline Bitmask & operator^=(Bitmask & x , Bitmask y) \
28  { x = x ^ y ; return x ; }