SeqAn3  3.0.3
The Modern C++ library for sequence analysis.
align_config_score_type.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 
18 
19 namespace seqan3::align_cfg
20 {
34 template <arithmetic score_t>
36 {
37 public:
38 
39  static_assert(std::floating_point<score_t> || std::signed_integral<score_t>,
40  "The selected score type must be a signed integral type or floating point type.");
41 
43  using type = score_t;
44 
48  constexpr score_type() = default;
49  constexpr score_type(score_type const &) = default;
50  constexpr score_type(score_type &&) = default;
51  constexpr score_type & operator=(score_type const &) = default;
52  constexpr score_type & operator=(score_type &&) = default;
53  ~score_type() = default;
54 
56 
59  static constexpr seqan3::detail::align_config_id id{seqan3::detail::align_config_id::score_type};
60 };
61 
62 } // namespace seqan3::align_cfg
A configuration element to set the score type used in the alignment algorithm.
Definition: align_config_score_type.hpp:36
constexpr score_type & operator=(score_type const &)=default
Defaulted.
~score_type()=default
Defaulted.
constexpr score_type(score_type const &)=default
Defaulted.
constexpr score_type(score_type &&)=default
Defaulted.
score_t type
The selected score type.
Definition: align_config_score_type.hpp:43
constexpr score_type & operator=(score_type &&)=default
Defaulted.
constexpr score_type()=default
Defaulted.
Provides seqan3::pipeable_config_element.
Provides concepts for core language types and relations that don't have concepts in C++20 (yet).
A special sub namespace for the alignment configurations.
Definition: align_config_band.hpp:25
Adds pipe interface to configuration elements.
Definition: pipeable_config_element.hpp:30