SeqAn3  3.0.2
The Modern C++ library for sequence analysis.
align_config_scoring_scheme.hpp
Go to the documentation of this file.
1 // -----------------------------------------------------------------------------------------------------
2 // Copyright (c) 2006-2020, Knut Reinert & Freie Universität Berlin
3 // Copyright (c) 2016-2020, 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 
23 namespace seqan3::align_cfg
24 {
25 
43 template <std::semiregular scoring_scheme_t>
44 struct scoring_scheme : public pipeable_config_element<scoring_scheme<scoring_scheme_t>>
45 {
47  scoring_scheme_t scheme{};
48 
52  constexpr scoring_scheme() = default;
53  constexpr scoring_scheme(scoring_scheme const &) = default;
54  constexpr scoring_scheme(scoring_scheme &&) = default;
55  constexpr scoring_scheme & operator=(scoring_scheme const &) = default;
56  constexpr scoring_scheme & operator=(scoring_scheme &&) = default;
57  ~scoring_scheme() = default;
58 
66  explicit constexpr scoring_scheme(scoring_scheme_t scheme) : scheme{std::move(scheme)}
67  {}
69 
72  static constexpr seqan3::detail::align_config_id id{seqan3::detail::align_config_id::scoring};
73 };
74 
80 template <typename scheme_t>
84 
85 } // namespace seqan3::align_cfg
seqan3::align_cfg::scoring_scheme::operator=
constexpr scoring_scheme & operator=(scoring_scheme const &)=default
Defaulted.
seqan3::align_cfg::scoring_scheme::~scoring_scheme
~scoring_scheme()=default
Defaulted.
basic.hpp
Provides various type traits on generic types.
pipeable_config_element.hpp
Provides seqan3::pipeable_config_element.
seqan3::align_cfg::scoring_scheme::scoring_scheme
constexpr scoring_scheme()=default
Defaulted.
concepts
The Concepts library.
scoring_scheme_concept.hpp
Provides seqan3::scoring_scheme_for.
seqan3::views::move
auto const move
A view that turns lvalue-references into rvalue-references.
Definition: move.hpp:68
seqan3::align_cfg
A special sub namespace for the alignment configurations.
Definition: align_config_band.hpp:23
seqan3::align_cfg::scoring_scheme::operator=
constexpr scoring_scheme & operator=(scoring_scheme &&)=default
Defaulted.
seqan3::align_cfg::scoring_scheme::scheme
scoring_scheme_t scheme
The scoring scheme to be used in the alignment algorithm.
Definition: align_config_scoring_scheme.hpp:47
seqan3::align_cfg::scoring_scheme
Sets the scoring scheme for the alignment algorithm.
Definition: align_config_scoring_scheme.hpp:45
seqan3::align_cfg::scoring_scheme::scoring_scheme
scoring_scheme(scheme_t) -> scoring_scheme< std::remove_cvref_t< scheme_t >>
Deduces the scoring scheme type from the constructor argument.
seqan3::align_cfg::scoring_scheme::scoring_scheme
constexpr scoring_scheme(scoring_scheme const &)=default
Defaulted.
seqan3::align_cfg::scoring_scheme::scoring_scheme
constexpr scoring_scheme(scoring_scheme &&)=default
Defaulted.
seqan3::align_cfg::scoring_scheme::scoring_scheme
constexpr scoring_scheme(scoring_scheme_t scheme)
Initialises the scoring scheme config with the given scheme.
Definition: align_config_scoring_scheme.hpp:66
detail.hpp
Provides some utility functions for the alignment configurations.