|
(Note that these are not member functions.)
|
template<typename lhs_config_t , typename rhs_config_t > |
constexpr auto | operator| (lhs_config_t &&lhs, rhs_config_t &&rhs) |
| Combines two configurations and/or configuration elements forming a new seqan3::configuration. More...
|
|
|
template<detail::config_element config_t> |
| configuration (config_t) -> configuration< config_t > |
| Deduces the correct configuration element type from the passed seqan3::pipeable_config_element.
|
|
|
template<template< typename ... > class query_t, typename ... configs_t> |
constexpr auto & | get (configuration< configs_t... > &config) noexcept |
| Returns the stored element. More...
|
|
|
template<typename alternative_t > |
constexpr decltype(auto) | get_or (alternative_t &&alternative) &noexcept |
| Returns the stored configuration element if present otherwise the given alternative. More...
|
|
template<typename alternative_t > |
constexpr decltype(auto) | get_or (alternative_t &&alternative) const &noexcept |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
|
template<typename alternative_t > |
constexpr decltype(auto) | get_or (alternative_t &&alternative) &&noexcept |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
|
template<typename alternative_t > |
constexpr decltype(auto) | get_or (alternative_t &&alternative) const &&noexcept |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
|
template<typename query_t > |
static constexpr bool | exists () noexcept |
| Checks if the given type exists in the tuple.
|
|
template<template< typename ... > typename query_t> |
static constexpr bool | exists () noexcept |
| Checks if the given type exists in the tuple.
|
|
|
Note that modifications return new configurations and do not modify this .
|
template<typename other_configuration_t > |
constexpr auto | append (other_configuration_t &&other_config) const |
| Returns a new configuration by appending the given configuration to the current one. More...
|
|
template<typename query_t > |
constexpr auto | remove () const |
| Remove a config element from the configuration. More...
|
|
template<template< typename ... > typename query_t> |
constexpr auto | remove () const |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
|
template<detail::config_element ... configs_t>
class seqan3::configuration< configs_t >
Collection of elements to configure an algorithm.
- Template Parameters
-
configs_t | Template parameter pack containing all configuration elements; Must model seqan3::detail::config_element |
This class provides a unified interface to create and query such configurations for a specific algorithm. It extends the standard tuple interface with some useful functions to modify and query the user configurations.
template<detail::config_element ... configs_t>
template<typename other_configuration_t >
Returns a new configuration by appending the given configuration to the current one.
- Template Parameters
-
other_configuration_t | Another configuration type or configuration element type; each configuration element must model seqan3::detail::config_element_pipeable_with each of the configurations elements of the current configuration. |
- Parameters
-
[in] | other_config | The other configuration to append to the current one. |
- Returns
- A new configuration containing the appended configuration elements.
This function generates a new configuration object containing the appended configuration elements. The current configuration will not be modified.
template<detail::config_element ... configs_t>
template<typename alternative_t >
Returns the stored configuration element if present otherwise the given alternative.
- Template Parameters
-
alternative_t | The type of the configuration element that is queried. |
- Parameters
-
[in] | alternative | The alternative whose type is used to check for an existing configuration element. |
Uses the type alternative_t
of the given alternative to check if such an configuration element was already stored inside of the configuration. If no suitable candidate can be found the passed value alternative
will be returned. If alternative_t
is a class template, then any specialisation of this alternative type will be searched and returned if present.
- Returns
- The stored configuration element identified by
alternative_t
or the alternative if not present.
Example
enum struct my_id : int
{
bar_id,
foo_id
};
struct bar : public seqan3::pipeable_config_element<bar>
{
public:
float value{};
bar() = default;
bar(bar const &) = default;
bar(bar &&) = default;
~bar() = default;
bar(float v) : value{v}
{}
static constexpr my_id id{my_id::bar_id};
};
template <typename t>
class foo : public seqan3::pipeable_config_element<foo<t>>
{
public:
t value{};
foo() = default;
foo(foo const &) = default;
foo(foo &&) = default;
~foo() = default;
{}
static constexpr my_id id{my_id::foo_id};
};
template <typename t>
foo(t) -> foo<t>;
int main()
{
}
Collection of elements to configure an algorithm.
Definition: configuration.hpp:46
constexpr configuration & operator=(configuration const &)=default
Defaulted.
Provides seqan3::configuration and utility functions.
Provides seqan3::debug_stream and related types.
debug_stream_type debug_stream
A global instance of seqan3::debug_stream_type.
Definition: debug_stream.hpp:42
auto const move
A view that turns lvalue-references into rvalue-references.
Definition: move.hpp:70
SeqAn specific customisations in the standard namespace.
Provides seqan3::pipeable_config_element.
Exception
no-throw guarantee.
Complexity
Constant time.