SeqAn3 3.1.0
The Modern C++ library for sequence analysis.
scoring_scheme_concept.hpp
Go to the documentation of this file.
1// -----------------------------------------------------------------------------------------------------
2// Copyright (c) 2006-2021, Knut Reinert & Freie Universität Berlin
3// Copyright (c) 2016-2021, 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>
61SEQAN3_CONCEPT scoring_scheme_for = requires (t scheme,
62 alphabet_t const alph1,
63 alphabet2_t const alph2)
64{
65 requires alphabet<alphabet_t>;
66 requires alphabet<alphabet2_t>;
67
68 { scheme.score(alph1, alph2) };
69 requires std::common_reference_with<decltype(scheme.score(alph1, alph2)),
71
72 { scheme.score(alphabet_t{}, alphabet2_t{}) };
73 requires std::common_reference_with<decltype(scheme.score(alphabet_t{}, alphabet2_t{})),
75};
77
78} // 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: cigar_operation_table.hpp:2