17namespace seqan3::detail
26template <
class T,
class U>
27concept weakly_equality_comparable_with =
28 requires (std::remove_reference_t<T>
const & t, std::remove_reference_t<U>
const & u) {
29 requires std::convertible_to<
decltype(t == u),
bool>;
30 requires std::convertible_to<
decltype(t != u),
bool>;
31 requires std::convertible_to<
decltype(u == t),
bool>;
32 requires std::convertible_to<
decltype(u != t),
bool>;
43template <
typename t1,
typename t2>
44concept weakly_ordered_with =
45 requires (std::remove_reference_t<t1>
const & v1, std::remove_reference_t<t2>
const & v2) {
46 requires std::convertible_to<
decltype(v1 < v2), bool>;
47 requires std::convertible_to<
decltype(v1 <= v2), bool>;
48 requires std::convertible_to<
decltype(v1 > v2),
bool>;
49 requires std::convertible_to<
decltype(v1 >= v2),
bool>;
51 requires std::convertible_to<
decltype(v2 < v1), bool>;
52 requires std::convertible_to<
decltype(v2 <= v1), bool>;
53 requires std::convertible_to<
decltype(v2 > v1),
bool>;
54 requires std::convertible_to<
decltype(v2 >= v1),
bool>;
67template <
typename from_t,
typename to_t>
68concept convertable_to_through_char_representation =
69 alphabet<from_t> && alphabet<to_t> && std::default_initializable<from_t>;
Core alphabet concept and free function/type trait wrappers.