SeqAn3  3.2.0
The Modern C++ library for sequence analysis.
seqan3::common_tuple< Types > Class Template Reference

A std::tuple implementation that incorporates most changes from C++23's standard library. More...

#include <seqan3/utility/tuple/common_tuple.hpp>

+ Inheritance diagram for seqan3::common_tuple< Types >:

Public Member Functions

Default constructors and assignments.
 common_tuple ()=default
 Defaulted.
 
 common_tuple (common_tuple const &)=default
 Defaulted.
 
common_tupleoperator= (common_tuple const &)=default
 Defaulted.
 
 ~common_tuple ()=default
 
Construct from arguments.
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&(std
 Constructs from arguments.
 
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&(std
 Constructs from arguments.
 
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&(std
 Constructs from arguments.
 
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&(std
 Constructs from arguments.
 
Construct from common_tuple.
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&(std
 Constructs from common_tuple.
 
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&(std
 Constructs from common_tuple.
 
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&(std
 Constructs from common_tuple.
 
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&(std
 Constructs from common_tuple.
 
Construct from common_pair.
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&(std
 Constructs from common_pair.
 
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&(std
 Constructs from common_pair.
 
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&(std
 Constructs from common_pair.
 
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&(std
 Constructs from common_pair.
 
Construct from std::tuple.
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&(std
 Constructs from std::tuple.
 
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&(std
 Constructs from std::tuple.
 
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&(std
 Constructs from std::tuple.
 
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&(std
 Constructs from std::tuple.
 
Construct from std::pair.
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&(std
 Constructs from std::pair.
 
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&(std
 Constructs from std::pair.
 
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&(std
 Constructs from std::pair.
 
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&(std
 Constructs from std::pair.
 
Assign from common_tuple.
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&(std
 Assigns from common_tuple.
 
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&(std
 Assigns from common_tuple.
 
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&(std
 Assigns from common_tuple.
 
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&(std
 Assigns from common_tuple.
 
Assign from common_pair.
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&(std
 
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&(std
 
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&(std
 
Assign from std::tuple.
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&(std
 
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&(std
 
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&(std
 
Assign from std::pair.
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&(std
 
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&(std
 
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&(std
 
Conversion to std::tuple.
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&(std
 
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&(std
 
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&(std
 
- Public Member Functions inherited from std::tuple< Types... >
operator= (T... args)
 
swap (T... args)
 
tuple (T... args)
 

Comparison operators (common_tuple)

template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&requires
 Checks whether lhs and rhs are equal. More...
 
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&requires
 Checks whether lhs and rhs are unequal. More...
 
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&requires
 Checks whether lhs is less than rhs. More...
 
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&requires
 Checks whether lhs is less than or equal to rhs. More...
 
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&requires
 Checks whether lhs is greater than rhs. More...
 
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&requires
 Checks whether lhs is greater than or equal to rhs. More...
 
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&requires
 Performs a three-way comparison between lhs and rhs More...
 
constexpr friend bool operator== (common_tuple const &lhs, common_tuple< UTypes... > const &rhs)
 Checks whether lhs and rhs are equal. More...
 
constexpr friend bool operator!= (common_tuple const &lhs, common_tuple< UTypes... > const &rhs)
 Checks whether lhs and rhs are equal. More...
 
constexpr friend bool operator< (common_tuple const &lhs, common_tuple< UTypes... > const &rhs)
 Checks whether lhs and rhs are equal. More...
 
constexpr friend bool operator<= (common_tuple const &lhs, common_tuple< UTypes... > const &rhs)
 Checks whether lhs and rhs are equal. More...
 
constexpr friend bool operator> (common_tuple const &lhs, common_tuple< UTypes... > const &rhs)
 Checks whether lhs and rhs are equal. More...
 
constexpr friend bool operator>= (common_tuple const &lhs, common_tuple< UTypes... > const &rhs)
 Checks whether lhs and rhs are equal. More...
 
constexpr friend auto operator<=> (common_tuple const &lhs, common_tuple< UTypes... > const &rhs)
 Checks whether lhs and rhs are equal. More...
 

Comparison operators (std::tuple)

template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&requires
 Checks whether lhs and rhs are equal. More...
 
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&requires
 Checks whether lhs and rhs are unequal. More...
 
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&requires
 Checks whether lhs is less than rhs. More...
 
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&requires
 Checks whether lhs is less than or equal to rhs. More...
 
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&requires
 Checks whether lhs is greater than rhs. More...
 
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&requires
 Checks whether lhs is greater than or equal to rhs. More...
 
template<class... UTypes>
 requires (sizeof...(Types)==sizeof...(UTypes)) &&requires
 Performs a three-way comparison between lhs and rhs More...
 
constexpr friend bool operator== (common_tuple const &lhs, std::tuple< UTypes... > const &rhs)
 Checks whether lhs and rhs are equal. More...
 
constexpr friend bool operator!= (common_tuple const &lhs, std::tuple< UTypes... > const &rhs)
 Checks whether lhs and rhs are equal. More...
 
constexpr friend bool operator< (common_tuple const &lhs, std::tuple< UTypes... > const &rhs)
 Checks whether lhs and rhs are equal. More...
 
constexpr friend bool operator<= (common_tuple const &lhs, std::tuple< UTypes... > const &rhs)
 Checks whether lhs and rhs are equal. More...
 
constexpr friend bool operator> (common_tuple const &lhs, std::tuple< UTypes... > const &rhs)
 Checks whether lhs and rhs are equal. More...
 
constexpr friend bool operator>= (common_tuple const &lhs, std::tuple< UTypes... > const &rhs)
 Checks whether lhs and rhs are equal. More...
 
constexpr friend auto operator<=> (common_tuple const &lhs, std::tuple< UTypes... > const &rhs)
 Checks whether lhs and rhs are equal. More...
 

Detailed Description

template<class... Types>
class seqan3::common_tuple< Types >

A std::tuple implementation that incorporates most changes from C++23's standard library.

Constructor & Destructor Documentation

◆ ~common_tuple()

template<class... Types>
seqan3::common_tuple< Types >::~common_tuple ( )
default

Defaulted.

Member Function Documentation

◆ requires() [1/14]

template<class... Types>
template<class... UTypes>
seqan3::common_tuple< Types >::requires ( sizeof...  Types = = sizeof...(UTypes)) &&
inline

Checks whether lhs and rhs are equal.

Template Parameters
UTypesThe types of the elements of rhs. Automatically deduced.
Parameters
lhsA common_tuple.
rhsA common_tuple with possibly different element types.
Returns
A bool indicating the result of the comparison.

◆ requires() [2/14]

template<class... Types>
template<class... UTypes>
seqan3::common_tuple< Types >::requires ( sizeof...  Types = = sizeof...(UTypes)) &&
inline

Checks whether lhs and rhs are unequal.

Template Parameters
UTypesThe types of the elements of rhs. Automatically deduced.
Parameters
lhsA common_tuple.
rhsA common_tuple with possibly different element types.
Returns
A bool indicating the result of the comparison.

◆ requires() [3/14]

template<class... Types>
template<class... UTypes>
seqan3::common_tuple< Types >::requires ( sizeof...  Types = = sizeof...(UTypes)) &&
inline

Checks whether lhs is less than rhs.

Template Parameters
UTypesThe types of the elements of rhs. Automatically deduced.
Parameters
lhsA common_tuple.
rhsA common_tuple with possibly different element types.
Returns
A bool indicating the result of the comparison.

◆ requires() [4/14]

template<class... Types>
template<class... UTypes>
seqan3::common_tuple< Types >::requires ( sizeof...  Types = = sizeof...(UTypes)) &&
inline

Checks whether lhs is less than or equal to rhs.

Template Parameters
UTypesThe types of the elements of rhs. Automatically deduced.
Parameters
lhsA common_tuple.
rhsA common_tuple with possibly different element types.
Returns
A bool indicating the result of the comparison.

◆ requires() [5/14]

template<class... Types>
template<class... UTypes>
seqan3::common_tuple< Types >::requires ( sizeof...  Types = = sizeof...(UTypes)) &&
inline

Checks whether lhs is greater than rhs.

Template Parameters
UTypesThe types of the elements of rhs. Automatically deduced.
Parameters
lhsA common_tuple.
rhsA common_tuple with possibly different element types.
Returns
A bool indicating the result of the comparison.

◆ requires() [6/14]

template<class... Types>
template<class... UTypes>
seqan3::common_tuple< Types >::requires ( sizeof...  Types = = sizeof...(UTypes)) &&
inline

Checks whether lhs is greater than or equal to rhs.

Template Parameters
UTypesThe types of the elements of rhs. Automatically deduced.
Parameters
lhsA common_tuple.
rhsA common_tuple with possibly different element types.
Returns
A bool indicating the result of the comparison.

◆ requires() [7/14]

template<class... Types>
template<class... UTypes>
seqan3::common_tuple< Types >::requires ( sizeof...  Types = = sizeof...(UTypes)) &&
inline

Performs a three-way comparison between lhs and rhs

Template Parameters
UTypesThe types of the elements of rhs. Automatically deduced.
Parameters
lhsA common_tuple.
rhsA common_tuple with possibly different element types.
Returns
An ordering indicating the result of the comparison.

◆ requires() [8/14]

template<class... Types>
template<class... UTypes>
seqan3::common_tuple< Types >::requires ( sizeof...  Types = = sizeof...(UTypes)) &&
inline

Checks whether lhs and rhs are equal.

Template Parameters
UTypesThe types of the elements of rhs. Automatically deduced.
Parameters
lhsA common_tuple.
rhsA std::tuple with possibly different element types.
Returns
A bool indicating the result of the comparison.

◆ requires() [9/14]

template<class... Types>
template<class... UTypes>
seqan3::common_tuple< Types >::requires ( sizeof...  Types = = sizeof...(UTypes)) &&
inline

Checks whether lhs and rhs are unequal.

Template Parameters
UTypesThe types of the elements of rhs. Automatically deduced.
Parameters
lhsA common_tuple.
rhsA std::tuple with possibly different element types.
Returns
A bool indicating the result of the comparison.

◆ requires() [10/14]

template<class... Types>
template<class... UTypes>
seqan3::common_tuple< Types >::requires ( sizeof...  Types = = sizeof...(UTypes)) &&
inline

Checks whether lhs is less than rhs.

Template Parameters
UTypesThe types of the elements of rhs. Automatically deduced.
Parameters
lhsA common_tuple.
rhsA std::tuple with possibly different element types.
Returns
A bool indicating the result of the comparison.

◆ requires() [11/14]

template<class... Types>
template<class... UTypes>
seqan3::common_tuple< Types >::requires ( sizeof...  Types = = sizeof...(UTypes)) &&
inline

Checks whether lhs is less than or equal to rhs.

Template Parameters
UTypesThe types of the elements of rhs. Automatically deduced.
Parameters
lhsA common_tuple.
rhsA std::tuple with possibly different element types.
Returns
A bool indicating the result of the comparison.

◆ requires() [12/14]

template<class... Types>
template<class... UTypes>
seqan3::common_tuple< Types >::requires ( sizeof...  Types = = sizeof...(UTypes)) &&
inline

Checks whether lhs is greater than rhs.

Template Parameters
UTypesThe types of the elements of rhs. Automatically deduced.
Parameters
lhsA common_tuple.
rhsA std::tuple with possibly different element types.
Returns
A bool indicating the result of the comparison.

◆ requires() [13/14]

template<class... Types>
template<class... UTypes>
seqan3::common_tuple< Types >::requires ( sizeof...  Types = = sizeof...(UTypes)) &&
inline

Checks whether lhs is greater than or equal to rhs.

Template Parameters
UTypesThe types of the elements of rhs. Automatically deduced.
Parameters
lhsA common_tuple.
rhsA std::tuple with possibly different element types.
Returns
A bool indicating the result of the comparison.

◆ requires() [14/14]

template<class... Types>
template<class... UTypes>
seqan3::common_tuple< Types >::requires ( sizeof...  Types = = sizeof...(UTypes)) &&
inline

Performs a three-way comparison between lhs and rhs

Template Parameters
UTypesThe types of the elements of rhs. Automatically deduced.
Parameters
lhsA common_tuple.
rhsA std::tuple with possibly different element types.
Returns
An ordering indicating the result of the comparison.

Friends And Related Function Documentation

◆ operator!= [1/2]

template<class... Types>
constexpr friend bool operator!= ( common_tuple< Types > const &  lhs,
common_tuple< UTypes... > const &  rhs 
)
friend

Checks whether lhs and rhs are equal.

Template Parameters
UTypesThe types of the elements of rhs. Automatically deduced.
Parameters
lhsA common_tuple.
rhsA common_tuple with possibly different element types.
Returns
A bool indicating the result of the comparison.

◆ operator!= [2/2]

template<class... Types>
constexpr friend bool operator!= ( common_tuple< Types > const &  lhs,
std::tuple< UTypes... > const &  rhs 
)
friend

Checks whether lhs and rhs are equal.

Template Parameters
UTypesThe types of the elements of rhs. Automatically deduced.
Parameters
lhsA common_tuple.
rhsA std::tuple with possibly different element types.
Returns
A bool indicating the result of the comparison.

◆ operator< [1/2]

template<class... Types>
constexpr friend bool operator< ( common_tuple< Types > const &  lhs,
common_tuple< UTypes... > const &  rhs 
)
friend

Checks whether lhs and rhs are equal.

Template Parameters
UTypesThe types of the elements of rhs. Automatically deduced.
Parameters
lhsA common_tuple.
rhsA common_tuple with possibly different element types.
Returns
A bool indicating the result of the comparison.

◆ operator< [2/2]

template<class... Types>
constexpr friend bool operator< ( common_tuple< Types > const &  lhs,
std::tuple< UTypes... > const &  rhs 
)
friend

Checks whether lhs and rhs are equal.

Template Parameters
UTypesThe types of the elements of rhs. Automatically deduced.
Parameters
lhsA common_tuple.
rhsA std::tuple with possibly different element types.
Returns
A bool indicating the result of the comparison.

◆ operator<= [1/2]

template<class... Types>
constexpr friend bool operator<= ( common_tuple< Types > const &  lhs,
common_tuple< UTypes... > const &  rhs 
)
friend

Checks whether lhs and rhs are equal.

Template Parameters
UTypesThe types of the elements of rhs. Automatically deduced.
Parameters
lhsA common_tuple.
rhsA common_tuple with possibly different element types.
Returns
A bool indicating the result of the comparison.

◆ operator<= [2/2]

template<class... Types>
constexpr friend bool operator<= ( common_tuple< Types > const &  lhs,
std::tuple< UTypes... > const &  rhs 
)
friend

Checks whether lhs and rhs are equal.

Template Parameters
UTypesThe types of the elements of rhs. Automatically deduced.
Parameters
lhsA common_tuple.
rhsA std::tuple with possibly different element types.
Returns
A bool indicating the result of the comparison.

◆ operator<=> [1/2]

template<class... Types>
constexpr friend auto operator<=> ( common_tuple< Types > const &  lhs,
common_tuple< UTypes... > const &  rhs 
)
friend

Checks whether lhs and rhs are equal.

Template Parameters
UTypesThe types of the elements of rhs. Automatically deduced.
Parameters
lhsA common_tuple.
rhsA common_tuple with possibly different element types.
Returns
A bool indicating the result of the comparison.

◆ operator<=> [2/2]

template<class... Types>
constexpr friend auto operator<=> ( common_tuple< Types > const &  lhs,
std::tuple< UTypes... > const &  rhs 
)
friend

Checks whether lhs and rhs are equal.

Template Parameters
UTypesThe types of the elements of rhs. Automatically deduced.
Parameters
lhsA common_tuple.
rhsA std::tuple with possibly different element types.
Returns
A bool indicating the result of the comparison.

◆ operator== [1/2]

template<class... Types>
constexpr friend bool operator== ( common_tuple< Types > const &  lhs,
common_tuple< UTypes... > const &  rhs 
)
friend

Checks whether lhs and rhs are equal.

Template Parameters
UTypesThe types of the elements of rhs. Automatically deduced.
Parameters
lhsA common_tuple.
rhsA common_tuple with possibly different element types.
Returns
A bool indicating the result of the comparison.

◆ operator== [2/2]

template<class... Types>
constexpr friend bool operator== ( common_tuple< Types > const &  lhs,
std::tuple< UTypes... > const &  rhs 
)
friend

Checks whether lhs and rhs are equal.

Template Parameters
UTypesThe types of the elements of rhs. Automatically deduced.
Parameters
lhsA common_tuple.
rhsA std::tuple with possibly different element types.
Returns
A bool indicating the result of the comparison.

◆ operator> [1/2]

template<class... Types>
constexpr friend bool operator> ( common_tuple< Types > const &  lhs,
common_tuple< UTypes... > const &  rhs 
)
friend

Checks whether lhs and rhs are equal.

Template Parameters
UTypesThe types of the elements of rhs. Automatically deduced.
Parameters
lhsA common_tuple.
rhsA common_tuple with possibly different element types.
Returns
A bool indicating the result of the comparison.

◆ operator> [2/2]

template<class... Types>
constexpr friend bool operator> ( common_tuple< Types > const &  lhs,
std::tuple< UTypes... > const &  rhs 
)
friend

Checks whether lhs and rhs are equal.

Template Parameters
UTypesThe types of the elements of rhs. Automatically deduced.
Parameters
lhsA common_tuple.
rhsA std::tuple with possibly different element types.
Returns
A bool indicating the result of the comparison.

◆ operator>= [1/2]

template<class... Types>
constexpr friend bool operator>= ( common_tuple< Types > const &  lhs,
common_tuple< UTypes... > const &  rhs 
)
friend

Checks whether lhs and rhs are equal.

Template Parameters
UTypesThe types of the elements of rhs. Automatically deduced.
Parameters
lhsA common_tuple.
rhsA common_tuple with possibly different element types.
Returns
A bool indicating the result of the comparison.

◆ operator>= [2/2]

template<class... Types>
constexpr friend bool operator>= ( common_tuple< Types > const &  lhs,
std::tuple< UTypes... > const &  rhs 
)
friend

Checks whether lhs and rhs are equal.

Template Parameters
UTypesThe types of the elements of rhs. Automatically deduced.
Parameters
lhsA common_tuple.
rhsA std::tuple with possibly different element types.
Returns
A bool indicating the result of the comparison.

The documentation for this class was generated from the following file: