53 template <seqan3::arithmetic_concept value_t>
54 struct lower_bound : detail::strong_type<value_t, lower_bound<value_t>>
57 using detail::strong_type<value_t, lower_bound<value_t>>::strong_type;
64 template <seqan3::arithmetic_concept value_t>
65 struct upper_bound : detail::strong_type<value_t, upper_bound<value_t>>
68 using detail::strong_type<value_t, upper_bound<value_t>>::strong_type;
79 template <seqan3::arithmetic_concept value_t>
86 template <seqan3::arithmetic_concept value_t>
95 template <std::Integral value_t>
119 template <std::Integral input_value_t>
123 if (lower.get() > upper.get())
125 throw std::invalid_argument(
"An error occurred in the static band configuration: " 126 "The upper boundary must not be smaller than the lower boundary.");
133 value_t
lower_bound{std::numeric_limits<value_t>::max()};
135 value_t
upper_bound{std::numeric_limits<value_t>::max()};
147 template <std::Integral value_t>
Contains basic data structure for strong types.
Provides concepts for core language types and relations that don't have concepts in C++20 (yet)...
lower_bound(value_t) -> lower_bound< value_t >
Deduces the underlying lower boundary type.
The main SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:58
Data structure for a static band.
Definition: align_config_band_static.hpp:96
constexpr detail::align_config_band_adaptor< seqan3::band_static > band_static
A configuration adaptor for a static band.
Definition: align_config_band.hpp:156
Type for a lower boundary.
Definition: align_config_band_static.hpp:54
Type for an upper boundary.
Definition: align_config_band_static.hpp:65
constexpr band_static(lower_bound< input_value_t > const lower, upper_bound< input_value_t > const upper)
Construction from seqan3::lower_bound and seqan3::upper_bound.
Definition: align_config_band_static.hpp:120