SeqAn3 3.1.0
The Modern C++ library for sequence analysis.
align_config_scoring_scheme.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
14#pragma once
15
16#include <seqan3/std/concepts>
17
22
23namespace seqan3::align_cfg
24{
25
43template <std::semiregular scoring_scheme_t>
45{
46public:
48 scoring_scheme_t scheme{};
49
53 constexpr scoring_scheme() = default;
54 constexpr scoring_scheme(scoring_scheme const &) = default;
55 constexpr scoring_scheme(scoring_scheme &&) = default;
56 constexpr scoring_scheme & operator=(scoring_scheme const &) = default;
57 constexpr scoring_scheme & operator=(scoring_scheme &&) = default;
58 ~scoring_scheme() = default;
59
67 explicit constexpr scoring_scheme(scoring_scheme_t scheme) : scheme{std::move(scheme)}
68 {}
70
73 static constexpr seqan3::detail::align_config_id id{seqan3::detail::align_config_id::scoring};
74};
75
82template <typename scheme_t>
85
86} // namespace seqan3::align_cfg
Provides various type traits on generic types.
Sets the scoring scheme for the alignment algorithm.
Definition: align_config_scoring_scheme.hpp:45
constexpr scoring_scheme(scoring_scheme_t scheme)
Initialises the scoring scheme config with the given scheme.
Definition: align_config_scoring_scheme.hpp:67
scoring_scheme(scheme_t) -> scoring_scheme< std::remove_cvref_t< scheme_t > >
Deduces the scoring scheme type from the constructor argument.
scoring_scheme_t scheme
The scoring scheme to be used in the alignment algorithm.
Definition: align_config_scoring_scheme.hpp:48
constexpr scoring_scheme & operator=(scoring_scheme &&)=default
Defaulted.
constexpr scoring_scheme()=default
Defaulted.
constexpr scoring_scheme & operator=(scoring_scheme const &)=default
Defaulted.
constexpr scoring_scheme(scoring_scheme const &)=default
Defaulted.
constexpr scoring_scheme(scoring_scheme &&)=default
Defaulted.
~scoring_scheme()=default
Defaulted.
The <concepts> header from C++20's standard library.
A special sub namespace for the alignment configurations.
Definition: align_config_band.hpp:25
SeqAn specific customisations in the standard namespace.
Provides seqan3::pipeable_config_element.
Provides seqan3::scoring_scheme_for.
Adds pipe interface to configuration elements.
Definition: pipeable_config_element.hpp:32