SeqAn3  3.0.3
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 
15 #pragma once
16 
17 #include <stdexcept>
18 
20 #include <seqan3/std/concepts>
21 
22 namespace seqan3
23 {
24 
30 {
31 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 
48  template <std::integral input_value_t>
49  constexpr static_band(lower_bound<input_value_t> const lower, upper_bound<input_value_t> const upper)
50  : lower_bound{lower.get()}, upper_bound{upper.get()}
51  {
52  if (lower.get() > upper.get())
53  {
54  throw std::invalid_argument("The upper boundary must not be smaller than the lower boundary.");
55  }
56  }
57 
59  int64_t lower_bound{std::numeric_limits<int64_t>::lowest()};
61  int64_t upper_bound{std::numeric_limits<int64_t>::max()};
62 };
63 
64 } // namespace seqan3
[DEPRECATED] Provides seqan3::lower_bound and seqan3::upper_bound.
[DEPRECATED] Data structure for a static band.
Definition: static_band.hpp:30
constexpr static_band() noexcept=default
Defaulted.
The Concepts library.
T lowest(T... args)
T max(T... args)
The main SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
SeqAn specific customisations in the standard namespace.
#define SEQAN3_DEPRECATED_310
Deprecation message for SeqAn 3.1.0 release.
Definition: platform.hpp:202