Core¶
Meta-header for the core module .
- Author
- Hannes Hauswedell <hannes.hauswedell AT fu-berlin.de>
- Author
- Rene Rahn <rene.rahn AT fu-berlin.de>
-
namespace
seqan3¶ The main SeqAn3 namespace.
Helpers for seqan3::semi_alphabet_concept
These functions and metafunctions expose member variables and types so that they satisfy seqan3::semi_alphabet_concept.
Helpers for seqan3::alphabet_concept
These functions and metafunctions expose member variables and types so that they satisfy seqan3::alphabet_concept.
Helpers for seqan3::nucleotide_concept
These functions and metafunctions expose member variables and types so that they satisfy seqan3::nucleotide_concept.
Alphabet aliases
Other names (typedefs) for seqan3::nucl16
Range concepts
Adapted from the Ranges TS.
Container concepts
Container concepts as defined by the standard library (or very close).
Container-of-container concepts
Shortcuts for multi-dimensional container concepts.
-
namespace
detail¶ The internal SeqAn3 namespace.
The contents of this namespace are not visible to consumers of the library and the documentation is only generated for developers.
-
namespace
literal¶ The SeqAn3 namespace for literals.
SeqAn implements “user defined” literals in multiple places, e.g.
auto foo = "ACGTG"_dna4. These make working with small examples and tests a lot easier, but the risk of having a name collision with another library is higher so follow the example of the standard library and define all our literals in the namespaceseqan3::literal.- Attention
- This means you cannot use them, unless you explicitly add
using namespace seqan3::literal;(in addition tousing namespace seqan3;).
-
namespace
Contains platform and dependency checks.
- Author
- Hannes Hauswedell <hannes.hauswedell AT fu-berlin.de>
Contains seqan3::pod_tuple.
- Author
- Hannes Hauswedell <hannes.hauswedell AT fu-berlin.de>
-
namespace
seqan3¶ The main SeqAn3 namespace.
Helpers for seqan3::semi_alphabet_concept
These functions and metafunctions expose member variables and types so that they satisfy seqan3::semi_alphabet_concept.
Helpers for seqan3::alphabet_concept
These functions and metafunctions expose member variables and types so that they satisfy seqan3::alphabet_concept.
Helpers for seqan3::nucleotide_concept
These functions and metafunctions expose member variables and types so that they satisfy seqan3::nucleotide_concept.
Alphabet aliases
Other names (typedefs) for seqan3::nucl16
Range concepts
Adapted from the Ranges TS.
Container concepts
Container concepts as defined by the standard library (or very close).
Container-of-container concepts
Shortcuts for multi-dimensional container concepts.
- template <typename type0, typename... types>
-
struct
pod_tuple¶ - #include <core/pod_tuple.hpp>
Behaves like std::tuple but is an aggregate PODType.
This class behaves like std::tuple, but it is itself a POD type while std::tuple is not (even if all contained types are POD). Since the only benefit of this class is that it stays POD it actually enforces this on all types in the tuple (if you want to add non POD types, just use std::tuple instead).
- Template Parameters
type0: The first value’s type (every tuple must contain at least one type)....types: 0-n further types (the types of the other values).
It (only) supports aggregate initialization, i.e. you must use brace-initializiers and cannot use paranthesis. You can use seqan3::get or std::get and also structured bindings to access the elements in the tuple.
pod_tuple<int, float> t{3, 4.7}; static_assert(std::is_pod_v<pod_tuple<int, float>>); // template parameters are automatically deduced: pod_tuple t2{17, 3.7f, 19l}; std::cout << std::get<0>(t2) << '\n'; // 17 auto [ i, f, l ] = t2; // creates an int i with value 17, float f...
Access an element of a pod_tuple by index
The same as std::get on an std::tuple.
Note that these functions are available, both, in the seqan3 namespace and in namespace std.
Access an element of a pod_tuple by type
The same as std::get on an std::tuple.
Note that these functions are available, both, in the seqan3 namespace and in namespace std. As is the case with std::tuple, this function is only defined if the type appears once in the tuple, i.e.
std::get<int>(std::tuple<int, int>{1,2})is not defined.Comparison operators
Lexicographically compares the values in the tuple.
Public Members
-
type0
_head¶ The first element as member.
Related
- template <typename... types>
-
pod_tuple(types&&...)¶ User defined deduction guide enables easy use.