SeqAn3
3.4.0-rc.1
The Modern C++ library for sequence analysis.
Loading...
Searching...
No Matches
alphabet/detail/concept.hpp
Go to the documentation of this file.
1
// SPDX-FileCopyrightText: 2006-2024 Knut Reinert & Freie Universität Berlin
2
// SPDX-FileCopyrightText: 2016-2024 Knut Reinert & MPI für molekulare Genetik
3
// SPDX-License-Identifier: BSD-3-Clause
4
10
#pragma once
11
12
#include <
concepts
>
13
14
#include <
seqan3/core/platform.hpp
>
15
16
namespace
seqan3::detail
17
{
25
template
<
class
T,
class
U>
26
concept
weakly_equality_comparable_with =
27
requires
(
std::remove_reference_t<T>
const
& t,
std::remove_reference_t<U>
const
& u) {
28
requires
std::convertible_to<
decltype
(t == u),
bool
>;
29
requires
std::convertible_to<
decltype
(t != u),
bool
>;
30
requires
std::convertible_to<
decltype
(u == t),
bool
>;
31
requires
std::convertible_to<
decltype
(u != t),
bool
>;
32
};
34
42
template
<
typename
t1,
typename
t2>
43
concept
weakly_ordered_with =
44
requires
(
std::remove_reference_t<t1>
const
& v1,
std::remove_reference_t<t2>
const
& v2) {
45
requires
std::convertible_to<
decltype
(v1 < v2), bool>;
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
50
requires
std::convertible_to<
decltype
(v2 < v1), 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
};
56
57
}
// namespace seqan3::detail
concepts
platform.hpp
Provides platform and dependency checks.
std::remove_reference_t
Hide me
Version:
seqan3
alphabet
detail
concept.hpp
Generated on Mon Mar 4 2024 20:36:59 for SeqAn3 by
1.9.8