SeqAn3  3.0.2
The Modern C++ library for sequence analysis.
static_band.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 
13 #pragma once
14 
15 #include <stdexcept>
16 
18 #include <seqan3/std/concepts>
19 
20 namespace seqan3
21 {
22 
27 {
28 public:
32  constexpr static_band() noexcept = default;
33  constexpr static_band(static_band const &) noexcept = default;
34  constexpr static_band(static_band &&) noexcept = default;
35  constexpr static_band & operator=(static_band const &) noexcept = default;
36  constexpr static_band & operator=(static_band &&) noexcept = default;
37  ~static_band() noexcept = default;
38 
50  template <std::integral input_value_t>
51  constexpr static_band(lower_bound<input_value_t> const lower, upper_bound<input_value_t> const upper)
52  : lower_bound{lower.get()}, upper_bound{upper.get()}
53  {
54  if (lower.get() > upper.get())
55  {
56  throw std::invalid_argument("The upper boundary must not be smaller than the lower boundary.");
57  }
58  }
60 
65 };
66 
67 } // namespace seqan3
bound.hpp
Provides seqan3::lower_bound and seqan3::upper_bound.
seqan3::lower_bound
Type for a lower boundary.
Definition: bound.hpp:27
seqan3::upper_bound
Type for an upper boundary.
Definition: bound.hpp:38
seqan3::static_band
Data structure for a static band.
Definition: static_band.hpp:27
concepts
The Concepts library.
std::numeric_limits::lowest
T lowest(T... args)
stdexcept
seqan3::static_band::static_band
constexpr static_band() noexcept=default
Defaulted.
seqan3
The main SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
std::invalid_argument
std
SeqAn specific customisations in the standard namespace.
std::numeric_limits::max
T max(T... args)