16 #include <range/v3/numeric/accumulate.hpp> 35 template <
typename ...errors_t>
37 requires
sizeof...(errors_t) <= 4 &&
49 template <
typename ..._errors_t>
50 static constexpr
bool check_consistency(_errors_t ...errors)
52 if constexpr (
sizeof...(errors) < 2)
58 return [] (
auto head,
auto ...tail) constexpr
60 using head_t = decltype(head);
61 if constexpr (((head_t::_id != decltype(tail)::_id) && ...))
62 return check_consistency(tail...);
69 static_assert(check_consistency(errors_t{}...),
70 "You may not use the same error specifier more than once.");
76 static constexpr detail::search_config_id
id{detail::search_config_id::max_error};
114 requires
sizeof...(errors_t) > 0
118 detail::for_each([
this](
auto e)
121 }, std::forward<errors_t>(errors)...);
131 static_cast<uint8_t>(0)));
146 template <
typename ...errors_t>
Provides the error types for maximum number of errors.
Provides algorithms for meta programming, parameter packs and seqan3::type_list.
Provides compatibility matrix for search configurations.
Adds pipe interface to configuration elements.
Definition: pipeable_config_element.hpp:30
A special sub namespace for the search configurations.
std::array< uint8_t, 4 > value
The stored config value.
Definition: pipeable_config_element.hpp:33
~max_error() noexcept=default
Destructor.
constexpr max_error() noexcept=default
Default constructor.
Provides seqan3::pipeable_config_element.
constexpr max_error & operator=(max_error const &) noexcept=default
Copy assignment.
constexpr max_error(errors_t &&...errors) noexcept
Constructs the object from a set of error specifiers.
Definition: max_error.hpp:112
Adaptations of algorithms from the Ranges TS.
Provides seqan3::views::slice.
Provides seqan3::detail::configuration and utility functions.
A configuration element for the maximum number of errors across all error types (mismatches, insertions, deletions). This is an upper bound of errors independent from error numbers of specific error types.
Definition: max_error.hpp:43
constexpr auto slice
A view adaptor that returns a half-open interval on the underlying range.
Definition: slice.hpp:141