Loading...
Searching...
No Matches
scoring_scheme_concept.hpp
Go to the documentation of this file.
// SPDX-FileCopyrightText: 2006-2025 Knut Reinert & Freie Universität Berlin
// SPDX-FileCopyrightText: 2016-2025 Knut Reinert & MPI für molekulare Genetik
// SPDX-License-Identifier: BSD-3-Clause
#pragma once
#include <seqan3/alphabet/concept.hpp>
namespace seqan3
{
template <typename t, typename alphabet_t, typename alphabet2_t = alphabet_t>
concept scoring_scheme_for = requires (t scheme, alphabet_t const alph1, alphabet2_t const alph2) {
requires alphabet<alphabet_t>;
requires alphabet<alphabet2_t>;
{ scheme.score(alph1, alph2) };
requires std::common_reference_with<decltype(scheme.score(alph1, alph2)),
typename std::remove_reference_t<t>::score_type>;
{ scheme.score(alphabet_t{}, alphabet2_t{}) };
requires std::common_reference_with<decltype(scheme.score(alphabet_t{}, alphabet2_t{})),
typename std::remove_reference_t<t>::score_type>;
};
} // namespace seqan3
concept.hpp
Core alphabet concept and free function/type trait wrappers.
alphabet
The generic alphabet concept that covers most data types used in ranges.
scoring_scheme_for
A concept that requires that type be able to score two letters.
seqan3
The main SeqAn3 namespace.
Definition aligned_sequence_concept.hpp:26
std::remove_reference_t
Hide me