Provides core functionality used by multiple modules. More...
Modules | |
Algorithm | |
Provides core functionality used to configure algorithms. | |
builtin_character operations | |
Provides various operations on character types. | |
Concept | |
Additional concepts that are not specific to a SeqAn module. | |
Parallel | |
This module contains types and utilities for concurrent execution of algorithms in SeqAn. | |
Type List | |
Provides seqan3::type_list and metaprogramming utilities for working on type lists and type packs. | |
Type Traits | |
Provides various type traits and their shortcuts. | |
Classes | |
interface | seqan3::cereal_archive |
All archives of the Cereal library satisfy this. More... | |
interface | seqan3::cereal_input_archive |
All input archives of the Cereal library satisfy this. More... | |
interface | seqan3::cereal_output_archive |
All output archives of the Cereal library satisfy this. More... | |
interface | seqan3::cereal_text_archive |
All text archives of the Cereal library satisfy this. More... | |
interface | seqan3::cerealisable |
Specifies the requirements for types that are serialisable via Cereal. More... | |
class | seqan3::debug_stream_type< char_t > |
A "pretty printer" for most SeqAn data structures and related types. 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::tuple_like |
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. | |
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 , tuple_like 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<tuple_like 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.