15 #include <type_traits>
92 constexpr
bool add_enum_bitwise_operators =
false;
104 template <
typename t>
105 constexpr t operator&(t lhs, t rhs) noexcept
106 requires std::is_enum_v<t> && add_enum_bitwise_operators<t>
111 template <
typename t>
112 constexpr t
operator|(t lhs, t rhs) noexcept
113 requires std::is_enum_v<t> && add_enum_bitwise_operators<t>
118 template <
typename t>
119 constexpr t operator^(t lhs, t rhs) noexcept
120 requires std::is_enum_v<t> && add_enum_bitwise_operators<t>
125 template <
typename t>
126 constexpr t operator~(t lhs) noexcept
127 requires std::is_enum_v<t> && add_enum_bitwise_operators<t>
129 return static_cast<t
>(~static_cast<std::underlying_type_t<t>>(lhs));
132 template <
typename t>
133 constexpr t & operator&=(t & lhs, t rhs) noexcept
134 requires std::is_enum_v<t> && add_enum_bitwise_operators<t>
140 template <
typename t>
141 constexpr t & operator|=(t & lhs, t rhs) noexcept
142 requires std::is_enum_v<t> && add_enum_bitwise_operators<t>
148 template <
typename t>
149 constexpr t & operator^=(t & lhs, t rhs) noexcept
150 requires std::is_enum_v<t> && add_enum_bitwise_operators<t>
requires requires
The rank_type of the semi-alphabet; defined as the return type of seqan3::to_rank....
Definition: alphabet/concept.hpp:164
requires std::common_with< typename std::remove_reference_t< validator1_type >::option_value_type, typename std::remove_reference_t< validator2_type >::option_value_type > auto operator|(validator1_type &&vali1, validator2_type &&vali2)
Enables the chaining of validators.
Definition: validators.hpp:1124
The main SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29