24 #ifndef LELY_IO2_CAN_MSG_HPP_
25 #define LELY_IO2_CAN_MSG_HPP_
63 #endif // !LELY_NO_CANFD
68 operator~(CanFlag rhs) {
69 return static_cast<CanFlag
>(~static_cast<int>(rhs));
72 constexpr CanFlag operator&(CanFlag lhs, CanFlag rhs) {
73 return static_cast<CanFlag
>(
static_cast<int>(lhs) &
static_cast<int>(rhs));
77 operator^(CanFlag lhs, CanFlag rhs) {
78 return static_cast<CanFlag>(
static_cast<int>(lhs) ^
static_cast<int>(rhs));
82 operator|(CanFlag lhs, CanFlag rhs) {
83 return static_cast<CanFlag>(
static_cast<int>(lhs) |
static_cast<int>(rhs));
87 operator&=(CanFlag& lhs, CanFlag rhs) {
88 return lhs = lhs & rhs;
92 operator^=(CanFlag& lhs, CanFlag rhs) {
93 return lhs = lhs ^ rhs;
97 operator|=(CanFlag& lhs, CanFlag rhs) {
98 return lhs = lhs | rhs;
104 #endif // !LELY_IO2_CAN_MSG_HPP_