SeqAn3 3.2.0
The Modern C++ library for sequence analysis.
scoring_scheme_concept.hpp
Go to the documentation of this file.
1// -----------------------------------------------------------------------------------------------------
2// Copyright (c) 2006-2022, Knut Reinert & Freie Universität Berlin
3// Copyright (c) 2016-2022, Knut Reinert & MPI für molekulare Genetik
4// This file may be used, modified and/or redistributed under the terms of the 3-clause BSD-License
5// shipped with this file and also available at: https://github.com/seqan/seqan3/blob/master/LICENSE.md
6// -----------------------------------------------------------------------------------------------------
7
13#pragma once
14
16
17namespace seqan3
18{
19
58
60template <typename t, typename alphabet_t, typename alphabet2_t = alphabet_t>
61concept scoring_scheme_for =
62 requires (t scheme, alphabet_t const alph1, alphabet2_t const alph2) {
63 requires alphabet<alphabet_t>;
64 requires alphabet<alphabet2_t>;
65
66 {
67 scheme.score(alph1, alph2)
68 };
69 requires std::common_reference_with<decltype(scheme.score(alph1, alph2)),
71
72 {
73 scheme.score(alphabet_t{}, alphabet2_t{})
74 };
75 requires std::common_reference_with<decltype(scheme.score(alphabet_t{}, alphabet2_t{})),
77 };
79
80} // namespace seqan3
Core alphabet concept and free function/type trait wrappers.
The generic alphabet concept that covers most data types used in ranges.
A concept that requires that type be able to score two letters.
The main SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29