SeqAn3  3.2.0
The Modern C++ library for sequence analysis.
align_config_score_type.hpp
Go to the documentation of this file.
1 // -----------------------------------------------------------------------------------------------------
2 // Copyright (c) 2006-2022, Knut Reinert & Freie Universität Berlin
3 // Copyright (c) 2016-2022, 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  static_assert(std::floating_point<score_t> || std::signed_integral<score_t>,
39  "The selected score type must be a signed integral type or floating point type.");
40 
42  using type = score_t;
43 
47  constexpr score_type() = default;
48  constexpr score_type(score_type const &) = default;
49  constexpr score_type(score_type &&) = default;
50  constexpr score_type & operator=(score_type const &) = default;
51  constexpr score_type & operator=(score_type &&) = default;
52  ~score_type() = default;
53 
55 
58  static constexpr seqan3::detail::align_config_id id{seqan3::detail::align_config_id::score_type};
59 };
60 
61 } // 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:42
constexpr score_type & operator=(score_type &&)=default
Defaulted.
constexpr score_type()=default
Defaulted.
A special sub namespace for the alignment configurations.
Definition: align_config_band.hpp:25
Provides seqan3::pipeable_config_element.
Adds pipe interface to configuration elements.
Definition: pipeable_config_element.hpp:32
Provides concepts that do not have equivalents in C++20.