Behaves like std::tuple but is an aggregate PODType.
More...
#include <seqan3/core/pod_tuple.hpp>


constexpr bool  operator== (pod_tuple const &rhs) const noexcept 
 Checks whether *this is equal to rhs .


constexpr bool  operator!= (pod_tuple const &rhs) const noexcept 
 Checks whether *this is not equal to rhs .


constexpr bool  operator< (pod_tuple const &rhs) const noexcept 
 Checks whether *this is less than rhs .


constexpr bool  operator> (pod_tuple const &rhs) const noexcept 
 Checks whether *this is greater than rhs .


constexpr bool  operator<= (pod_tuple const &rhs) const noexcept 
 Checks whether *this is less than or equal to rhs .


constexpr bool  operator>= (pod_tuple const &rhs) const noexcept 
 Checks whether *this is greater than or equal to rhs .


template<typename type0, typename ... types>
struct seqan3::pod_tuple< type0, types... >
Behaves like std::tuple but is an aggregate PODType.
 Template Parameters

type0  The first type (the first type). 
...types  0n types (the remaining types of the values to be stored). 
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).
It (only) supports aggregate initialization, i.e. you must use braceinitializiers and cannot use paranthesis. You can use seqan3::get or std::get and also structured bindings to access the elements in the tuple.
int main()
{
seqan3::debug_stream << std::get<0>(t2) << '\n';
auto [ i, f, l ] = t2;
}
◆ get()
auto && get< i > 
( 
type && 
val  ) 


related 
Return the ith element of the tuple.
 Template Parameters

i  The index of the element to return (of type size_t ). 
 Parameters

[in,out]  val  The tuplelike object to operate on. 
 Returns
 The ith value in the tuple.
 Attention
 This is a concept requirement, not an actual function (however types satisfying this concept will provide an implementation).

This constraint is not enforced since empty tuples are valid.
◆ tuple_elment_t()
A transformation trait that holds the type of elements in the tuple.
 Template Parameters

i  Index of the queried element type. 
type  The tuplelike type. 
 Attention
 This is a concept requirement, not an actual function (however types satisfying this concept will provide an implementation).

This constraint is not enforced since empty tuples are valid.
◆ tuple_size_v()
A unary type trait that holds the number of elements in the tuple.
 Template Parameters

 Attention
 This is a concept requirement, not an actual function (however types satisfying this concept will provide an implementation).
The documentation for this struct was generated from the following file: