Provides core functionality used by multiple modules. More...
Modules | |
Algorithm | |
Provides core functionality used to configure algorithms. | |
Char operations | |
Provides various operations on character types. | |
Concept | |
Additional concepts that are not specific to a SeqAn3 module. | |
Parallel | |
This module contains types and utilities for concurrent execution of algorithms in SeqAn. | |
Type Traits | |
Provides various type traits and their shortcuts. | |
Classes | |
interface | seqan3::CerealArchive |
All archives of the Cereal library satisfy this. More... | |
interface | seqan3::CerealInputArchive |
All input archives of the Cereal library satisfy this. More... | |
interface | seqan3::Cerealisable |
Specifies the requirements for types that are serialisable via Cereal. More... | |
interface | seqan3::CerealOutputArchive |
All output archives of the Cereal library satisfy this. More... | |
interface | seqan3::CerealTextArchive |
All text archives of the Cereal library satisfy this. More... | |
struct | seqan3::pod_tuple< type0 > |
Recursion anchor for pod_tuple. More... | |
struct | seqan3::pod_tuple< type0, types... > |
Behaves like std::tuple but is an aggregate PODType. More... | |
interface | seqan3::TupleLike |
Whether a type behaves like a tuple. More... | |
Macros | |
#define | SEQAN3_WITH_CEREAL 0 |
Whether CEREAL support is available or not. | |
#define | SEQAN3_WITH_LEMON 0 |
Whether Lemon support is available or not. | |
Typedefs | |
template<typename ... types> | |
using | seqan3::type_list = meta::list< types... > |
Type that contains multiple types, an alias for meta::list. | |
Variables | |
template<typename t > | |
constexpr bool | seqan3::add_enum_bitwise_operators = false |
Set to true for a scoped enum to have binary operators overloaded. More... | |
Tuple utility functions | |
template<size_t pivot_c, template< typename ... > typename tuple_t, typename ... ts> | |
constexpr auto | seqan3::tuple_split (tuple_t< ts... > const &t) |
Splits a tuple like data structure at the given position. More... | |
template<typename pivot_t , TupleLike tuple_t> | |
constexpr auto | seqan3::tuple_split (tuple_t &&t) |
Splits a tuple like data structure at the first position of the given type. More... | |
template<TupleLike tuple_t> | |
constexpr auto | seqan3::tuple_pop_front (tuple_t &&t) |
Removes the first element of a tuple. More... | |
template<size_t pivot_c, template< typename ... > typename tuple_t, typename ... ts> | |
constexpr auto | seqan3::tuple_split (tuple_t< ts... > &&t) |
Splits a tuple like data structure at the given position. More... | |
Provides core functionality used by multiple modules.
The core module contains concepts, functions and some classes that are used by multiple other modules, but that usually are not relevant to most users of the library.
constexpr auto seqan3::tuple_pop_front | ( | tuple_t && | t | ) |
Removes the first element of a tuple.
[in] | t | The original tuple. |
t
.Note, that the tuple must contain at least one element and must support empty tuple types, i.e. std::pair cannot be used.
Linear in the number of elements.
Concurrent invocations of this functions are thread safe.
constexpr auto seqan3::tuple_split | ( | tuple_t< ts... > const & | t | ) |
Splits a tuple like data structure at the given position.
pivot_c | A template value specifying the split position. |
tuple_t | A template alias for a tuple like object. |
...ts | Types tuple_t is specified with. |
[in] | t | The original tuple to split. |
Splits a tuple into two tuples, while the element at the split position will be contained in the second tuple. Note, that the returned tuples can be empty. For this reason it is not possible to use tuple like objects, that cannot be empty, i.e. std::pair. Using such an object will emit an compiler error.
Linear in the number of elements.
Concurrent invocations of this functions are thread safe.
constexpr auto seqan3::tuple_split | ( | tuple_t< ts... > && | t | ) |
Splits a tuple like data structure at the given position.
pivot_c | A template value specifying the split position. |
tuple_t | A template alias for a tuple like object. |
...ts | Types tuple_t is specified with. |
[in] | t | The original tuple to split. |
Splits a tuple into two tuples, while the element at the split position will be contained in the second tuple. Note, that the returned tuples can be empty. For this reason it is not possible to use tuple like objects, that cannot be empty, i.e. std::pair. Using such an object will emit an compiler error.
Linear in the number of elements.
Concurrent invocations of this functions are thread safe.
constexpr auto seqan3::tuple_split | ( | tuple_t && | t | ) |
Splits a tuple like data structure at the first position of the given type.
pivot_t | A template type specifying the split position. |
[in] | t | The original tuple to split. |
Splits a tuple into two tuples, while the element at the split position will be contained in the second tuple. Note, that the returned tuples can be empty. For this reason it is not possible to use tuple like objects, that cannot be empty, i.e. std::pair. Using such an object will emit an compiler error.
Linear in the number of elements.
Concurrent invocations of this functions are thread safe.
constexpr bool seqan3::add_enum_bitwise_operators = false |
Set to true for a scoped enum to have binary operators overloaded.
If this type trait is specialised for an enum, the binary operators &
, |
, ^
, ~
, &=
, |=
, ^=
will be added and behave just like for ints or unscoped enums.