27template <
class... Types>
53 base_t & as_base() noexcept
61 base_t
const & as_base() const noexcept
70 template <
class... UTypes>
71 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<Types, UTypes &> && ...)
75 template <
class... UTypes>
76 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<Types, UTypes const> && ...)
80 template <
class... UTypes>
81 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<Types, UTypes> && ...)
85 template <
class... UTypes>
86 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<Types, UTypes const> && ...)
96 template <
class... UTypes>
97 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<Types, UTypes &> && ...)
101 template <
class... UTypes>
102 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<Types, UTypes const> && ...)
107 template <
class... UTypes>
108 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<Types, UTypes> && ...)
113 template <
class... UTypes>
114 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<Types, UTypes const> && ...)
125 template <
class... UTypes>
126 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<Types, UTypes &> && ...)
130 template <
class... UTypes>
131 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<Types, UTypes const> && ...)
136 template <
class... UTypes>
137 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<Types, UTypes> && ...)
142 template <
class... UTypes>
143 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<Types, UTypes const> && ...)
154 template <
class... UTypes>
155 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<Types, UTypes &> && ...)
159 template <
class... UTypes>
160 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<Types, UTypes const> && ...)
165 template <
class... UTypes>
166 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<Types, UTypes> && ...)
171 template <
class... UTypes>
172 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<Types, UTypes const> && ...)
181 template <
class... UTypes>
182 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<Types, UTypes &> && ...)
186 template <
class... UTypes>
187 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<Types, UTypes const> && ...)
192 template <
class... UTypes>
193 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<Types, UTypes> && ...)
198 template <
class... UTypes>
199 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<Types, UTypes const> && ...)
210 template <
class... UTypes>
211 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types, UTypes &> && ...)
216 ((std::get<N>(*
this) = std::get<N>(other)), ...);
223 template <
class... UTypes>
224 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types, UTypes const> && ...)
229 ((std::get<N>(*
this) = std::get<N>(other)), ...);
236 template <
class... UTypes>
237 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types, UTypes> && ...)
242 ((std::get<N>(*
this) = std::get<N>(other)), ...);
249 template <
class... UTypes>
250 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types, UTypes const> && ...)
255 ((std::get<N>(*
this) = std::get<N>(other)), ...);
262 template <
class... UTypes>
263 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types const, UTypes &> && ...)
268 ((std::get<N>(*
this) = std::get<N>(other)), ...);
275 template <
class... UTypes>
276 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types const, UTypes const> && ...)
281 ((std::get<N>(*
this) = std::get<N>(other)), ...);
288 template <
class... UTypes>
289 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types const, UTypes> && ...)
294 ((std::get<N>(*
this) = std::get<N>(other)), ...);
301 template <
class... UTypes>
302 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types const, UTypes const> && ...)
307 ((std::get<N>(*
this) = std::get<N>(other)), ...);
320 template <
class... UTypes>
321 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types, UTypes &> && ...)
326 ((std::get<N>(*
this) = std::get<N>(other)), ...);
333 template <
class... UTypes>
334 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types, UTypes const> && ...)
339 ((std::get<N>(*
this) = std::get<N>(other)), ...);
346 template <
class... UTypes>
347 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types, UTypes> && ...)
352 ((std::get<N>(*
this) = std::get<N>(other)), ...);
359 template <
class... UTypes>
360 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types, UTypes const> && ...)
365 ((std::get<N>(*
this) = std::get<N>(other)), ...);
372 template <
class... UTypes>
373 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types const, UTypes &> && ...)
378 ((std::get<N>(*
this) = std::get<N>(other)), ...);
385 template <
class... UTypes>
386 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types const, UTypes const> && ...)
391 ((std::get<N>(*
this) = std::get<N>(other)), ...);
398 template <
class... UTypes>
399 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types const, UTypes> && ...)
404 ((std::get<N>(*
this) = std::get<N>(other)), ...);
411 template <
class... UTypes>
412 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types const, UTypes const> && ...)
417 ((std::get<N>(*
this) = std::get<N>(other)), ...);
430 template <
class... UTypes>
431 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types, UTypes &> && ...)
436 ((std::get<N>(*
this) = std::get<N>(other)), ...);
443 template <
class... UTypes>
444 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types, UTypes const> && ...)
449 ((std::get<N>(*
this) = std::get<N>(other)), ...);
456 template <
class... UTypes>
457 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types, UTypes> && ...)
462 ((std::get<N>(*
this) = std::get<N>(other)), ...);
469 template <
class... UTypes>
470 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types, UTypes const> && ...)
475 ((std::get<N>(*
this) = std::get<N>(other)), ...);
482 template <
class... UTypes>
483 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types const, UTypes &> && ...)
488 ((std::get<N>(*
this) = std::get<N>(other)), ...);
495 template <
class... UTypes>
496 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types const, UTypes const> && ...)
501 ((std::get<N>(*
this) = std::get<N>(other)), ...);
508 template <
class... UTypes>
509 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types const, UTypes> && ...)
514 ((std::get<N>(*
this) = std::get<N>(other)), ...);
521 template <
class... UTypes>
522 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types const, UTypes const> && ...)
527 ((std::get<N>(*
this) = std::get<N>(other)), ...);
540 template <
class... UTypes>
541 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types, UTypes &> && ...)
546 ((std::get<N>(*
this) = std::get<N>(other)), ...);
553 template <
class... UTypes>
554 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types, UTypes const> && ...)
559 ((std::get<N>(*
this) = std::get<N>(other)), ...);
566 template <
class... UTypes>
567 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types, UTypes> && ...)
572 ((std::get<N>(*
this) = std::get<N>(other)), ...);
579 template <
class... UTypes>
580 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types, UTypes const> && ...)
585 ((std::get<N>(*
this) = std::get<N>(other)), ...);
592 template <
class... UTypes>
593 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types const, UTypes &> && ...)
598 ((std::get<N>(*
this) = std::get<N>(other)), ...);
605 template <
class... UTypes>
606 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types const, UTypes const> && ...)
611 ((std::get<N>(*
this) = std::get<N>(other)), ...);
618 template <
class... UTypes>
619 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types const, UTypes> && ...)
624 ((std::get<N>(*
this) = std::get<N>(other)), ...);
631 template <
class... UTypes>
632 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types const, UTypes const> && ...)
637 ((std::get<N>(*
this) = std::get<N>(other)), ...);
650 template <
class... UTypes>
651 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<UTypes, Types &> && ...)
657 template <
class... UTypes>
658 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<UTypes, Types const> && ...)
664 template <
class... UTypes>
665 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<UTypes, Types> && ...)
671 template <
class... UTypes>
672 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<UTypes, Types const> && ...)
689 template <
class... UTypes>
690 requires (
sizeof...(Types) ==
sizeof...(UTypes))
691 &&
requires {
requires (std::equality_comparable_with<Types, UTypes> && ...); }
694 static_assert((std::equality_comparable_with<Types, UTypes> && ...));
695 return lhs.as_base() == rhs.as_base();
704 template <
class... UTypes>
705 requires (
sizeof...(Types) ==
sizeof...(UTypes))
706 &&
requires {
requires (std::equality_comparable_with<Types, UTypes> && ...); }
709 return lhs.as_base() != rhs.as_base();
718 template <
class... UTypes>
719 requires (
sizeof...(Types) ==
sizeof...(UTypes))
720 &&
requires {
requires (std::totally_ordered_with<Types, UTypes> && ...); }
723 return lhs.as_base() < rhs.as_base();
732 template <
class... UTypes>
733 requires (
sizeof...(Types) ==
sizeof...(UTypes))
734 &&
requires {
requires (std::totally_ordered_with<Types, UTypes> && ...); }
737 return lhs.as_base() <= rhs.as_base();
746 template <
class... UTypes>
747 requires (
sizeof...(Types) ==
sizeof...(UTypes))
748 &&
requires {
requires (std::totally_ordered_with<Types, UTypes> && ...); }
751 return lhs.as_base() > rhs.as_base();
760 template <
class... UTypes>
761 requires (
sizeof...(Types) ==
sizeof...(UTypes))
762 &&
requires {
requires (std::totally_ordered_with<Types, UTypes> && ...); }
765 return lhs.as_base() >= rhs.as_base();
768#ifdef __cpp_lib_three_way_comparison
776 template <
class... UTypes>
777 requires (
sizeof...(Types) ==
sizeof...(UTypes))
778 &&
requires {
requires (std::three_way_comparable_with<Types, UTypes> && ...); }
781 return lhs.as_base() <=> rhs.as_base();
795 template <
class... UTypes>
796 requires (
sizeof...(Types) ==
sizeof...(UTypes))
797 &&
requires {
requires (std::equality_comparable_with<Types, UTypes> && ...); }
800 return lhs.as_base() == rhs;
809 template <
class... UTypes>
810 requires (
sizeof...(Types) ==
sizeof...(UTypes))
811 &&
requires {
requires (std::equality_comparable_with<Types, UTypes> && ...); }
814 return lhs.as_base() != rhs;
823 template <
class... UTypes>
824 requires (
sizeof...(Types) ==
sizeof...(UTypes))
825 &&
requires {
requires (std::totally_ordered_with<Types, UTypes> && ...); }
828 return lhs.as_base() < rhs;
837 template <
class... UTypes>
838 requires (
sizeof...(Types) ==
sizeof...(UTypes))
839 &&
requires {
requires (std::totally_ordered_with<Types, UTypes> && ...); }
842 return lhs.as_base() <= rhs;
851 template <
class... UTypes>
852 requires (
sizeof...(Types) ==
sizeof...(UTypes))
853 &&
requires {
requires (std::totally_ordered_with<Types, UTypes> && ...); }
856 return lhs.as_base() > rhs;
865 template <
class... UTypes>
866 requires (
sizeof...(Types) ==
sizeof...(UTypes))
867 &&
requires {
requires (std::totally_ordered_with<Types, UTypes> && ...); }
870 return lhs.as_base() >= rhs;
873#ifdef __cpp_lib_three_way_comparison
881 template <
class... UTypes>
882 requires (
sizeof...(Types) ==
sizeof...(UTypes))
883 &&
requires {
requires (std::three_way_comparable_with<Types, UTypes> && ...); }
886 return lhs.as_base() <=> rhs;
893template <
class... UTypes>
902template <
typename... args>
903struct tuple_size<
seqan3::
common_tuple<args...>> :
public tuple_size<std::tuple<args...>>
906template <
size_t index,
typename... args>
907struct tuple_element<index,
seqan3::
common_tuple<args...>> :
public tuple_element<index, std::tuple<args...>>
910template <
class... Ts,
class... Us>
917template <
class... Ts,
class... Us>
924template <
class... Ts,
class... Us>
931template <
class... Ts,
class... Us,
template <
class>
class TQual,
template <
class>
class UQual>
938template <
class... Ts,
class... Us,
template <
class>
class TQual,
template <
class>
class UQual>
945template <
class... Ts,
class... Us,
template <
class>
class TQual,
template <
class>
class UQual>
954 requires (i <
sizeof...(types))
956 return std::get<i>(
static_cast<std::tuple<types...
> &>(t));
962 requires (i <
sizeof...(types))
964 return std::get<i>(
static_cast<std::tuple<types...
> const &>(t));
969 requires (i <
sizeof...(types))
971 return std::get<i>(
static_cast<std::tuple<types...
> &&>(std::move(t)));
977 requires (i <
sizeof...(types))
979 return std::get<i>(
static_cast<std::tuple<types...
> const &&>(std::move(t)));
982template <
typename type,
typename... types>
986 return std::get<type>(
static_cast<std::tuple<types...
> &>(t));
989template <
typename type,
typename... types>
993 return std::get<type>(
static_cast<std::tuple<types...
> const &>(t));
996template <
typename type,
typename... types>
1000 return std::get<type>(
static_cast<std::tuple<types...
> &&>(std::move(t)));
1003template <
typename type,
typename... types>
1007 return std::get<type>(
static_cast<std::tuple<types...
> const &&>(std::move(t)));
A std::tuple implementation that incorporates most changes from C++23's standard library.
Definition: common_tuple.hpp:29
constexpr common_tuple & operator=(common_pair< UTypes... > &&other)
Assigns from common_pair.
Definition: common_tuple.hpp:348
constexpr common_tuple(std::pair< UTypes... > &&other)
Constructs from std::pair.
Definition: common_tuple.hpp:194
constexpr common_tuple & operator=(std::tuple< UTypes... > const &&other)
Assigns from std::tuple.
Definition: common_tuple.hpp:471
constexpr common_tuple(common_tuple< UTypes... > &other)
Constructs from common_tuple.
Definition: common_tuple.hpp:98
constexpr common_tuple const & operator=(std::tuple< UTypes... > &other) const
Assigns from std::tuple.
Definition: common_tuple.hpp:484
constexpr common_tuple(common_pair< UTypes... > &&other)
Constructs from common_pair.
Definition: common_tuple.hpp:138
constexpr common_tuple(common_tuple< UTypes... > const &other)
Constructs from common_tuple.
Definition: common_tuple.hpp:103
constexpr friend bool operator>(common_tuple const &lhs, common_tuple< UTypes... > const &rhs)
Checks whether lhs is greater than rhs.
Definition: common_tuple.hpp:749
constexpr common_tuple & operator=(common_pair< UTypes... > const &other)
Assigns from common_pair.
Definition: common_tuple.hpp:335
constexpr common_tuple const & operator=(std::tuple< UTypes... > const &other) const
Assigns from std::tuple.
Definition: common_tuple.hpp:497
constexpr common_tuple(UTypes &... other)
Constructs from arguments.
Definition: common_tuple.hpp:72
constexpr common_tuple(std::tuple< UTypes... > const &other)
Constructs from std::tuple.
Definition: common_tuple.hpp:161
constexpr common_tuple & operator=(common_tuple< UTypes... > &&other)
Assigns from common_tuple.
Definition: common_tuple.hpp:238
constexpr common_tuple(std::pair< UTypes... > &other)
Constructs from std::pair.
Definition: common_tuple.hpp:183
constexpr friend auto operator<=>(common_tuple const &lhs, common_tuple< UTypes... > const &rhs)
Performs a three-way comparison between lhs and rhs
Definition: common_tuple.hpp:779
constexpr common_tuple(UTypes const &&... other)
Constructs from arguments.
Definition: common_tuple.hpp:87
constexpr common_tuple(std::tuple< UTypes... > &&other)
Constructs from std::tuple.
Definition: common_tuple.hpp:167
constexpr common_tuple(common_pair< UTypes... > const &other)
Constructs from common_pair.
Definition: common_tuple.hpp:132
constexpr friend bool operator>=(common_tuple const &lhs, std::tuple< UTypes... > const &rhs)
Checks whether lhs is greater than or equal to rhs.
Definition: common_tuple.hpp:868
constexpr common_tuple const & operator=(common_tuple< UTypes... > const &other) const
Assigns from common_tuple.
Definition: common_tuple.hpp:277
constexpr common_tuple const & operator=(std::pair< UTypes... > const &&other) const
Assigns from std::pair.
Definition: common_tuple.hpp:633
constexpr common_tuple const & operator=(common_pair< UTypes... > const &other) const
Assigns from common_pair.
Definition: common_tuple.hpp:387
constexpr common_tuple & operator=(std::pair< UTypes... > const &other)
Assigns from std::pair.
Definition: common_tuple.hpp:555
constexpr friend bool operator<=(common_tuple const &lhs, common_tuple< UTypes... > const &rhs)
Checks whether lhs is less than or equal to rhs.
Definition: common_tuple.hpp:735
constexpr common_tuple & operator=(common_tuple< UTypes... > const &other)
Assigns from common_tuple.
Definition: common_tuple.hpp:225
constexpr common_tuple(std::pair< UTypes... > const &other)
Constructs from std::pair.
Definition: common_tuple.hpp:188
constexpr common_tuple & operator=(common_tuple< UTypes... > &other)
Assigns from common_tuple.
Definition: common_tuple.hpp:212
common_tuple()=default
Defaulted.
constexpr common_tuple & operator=(std::pair< UTypes... > const &&other)
Assigns from std::pair.
Definition: common_tuple.hpp:581
constexpr common_tuple & operator=(common_pair< UTypes... > const &&other)
Assigns from common_pair.
Definition: common_tuple.hpp:361
constexpr common_tuple(std::tuple< UTypes... > const &&other)
Constructs from std::tuple.
Definition: common_tuple.hpp:173
common_tuple(common_tuple const &)=default
Defaulted.
constexpr common_tuple const & operator=(std::pair< UTypes... > &other) const
Assigns from std::pair.
Definition: common_tuple.hpp:594
constexpr friend bool operator>(common_tuple const &lhs, std::tuple< UTypes... > const &rhs)
Checks whether lhs is greater than rhs.
Definition: common_tuple.hpp:854
constexpr common_tuple(UTypes &&... other)
Constructs from arguments.
Definition: common_tuple.hpp:82
constexpr friend bool operator!=(common_tuple const &lhs, std::tuple< UTypes... > const &rhs)
Checks whether lhs and rhs are unequal.
Definition: common_tuple.hpp:812
constexpr common_tuple const & operator=(std::pair< UTypes... > &&other) const
Assigns from std::pair.
Definition: common_tuple.hpp:620
constexpr common_tuple & operator=(std::tuple< UTypes... > &other)
Assigns from std::tuple.
Definition: common_tuple.hpp:432
constexpr common_tuple const & operator=(std::tuple< UTypes... > &&other) const
Assigns from std::tuple.
Definition: common_tuple.hpp:510
common_tuple & operator=(common_tuple const &)=default
Defaulted.
constexpr common_tuple(common_tuple< UTypes... > &&other)
Constructs from common_tuple.
Definition: common_tuple.hpp:109
constexpr friend auto operator<=>(common_tuple const &lhs, std::tuple< UTypes... > const &rhs)
Performs a three-way comparison between lhs and rhs
Definition: common_tuple.hpp:884
constexpr common_tuple(common_pair< UTypes... > &other)
Constructs from common_pair.
Definition: common_tuple.hpp:127
constexpr friend bool operator==(common_tuple const &lhs, common_tuple< UTypes... > const &rhs)
Checks whether lhs and rhs are equal.
Definition: common_tuple.hpp:692
constexpr friend bool operator!=(common_tuple const &lhs, common_tuple< UTypes... > const &rhs)
Checks whether lhs and rhs are unequal.
Definition: common_tuple.hpp:707
constexpr common_tuple const & operator=(common_pair< UTypes... > &&other) const
Assigns from common_pair.
Definition: common_tuple.hpp:400
constexpr common_tuple const & operator=(common_tuple< UTypes... > &&other) const
Assigns from common_tuple.
Definition: common_tuple.hpp:290
constexpr common_tuple & operator=(common_pair< UTypes... > &other)
Assigns from common_pair.
Definition: common_tuple.hpp:322
constexpr common_tuple const & operator=(common_pair< UTypes... > &other) const
Assigns from common_pair.
Definition: common_tuple.hpp:374
constexpr friend bool operator==(common_tuple const &lhs, std::tuple< UTypes... > const &rhs)
Checks whether lhs and rhs are equal.
Definition: common_tuple.hpp:798
constexpr common_tuple(common_tuple< UTypes... > const &&other)
Constructs from common_tuple.
Definition: common_tuple.hpp:115
constexpr friend bool operator<=(common_tuple const &lhs, std::tuple< UTypes... > const &rhs)
Checks whether lhs is less than or equal to rhs.
Definition: common_tuple.hpp:840
constexpr common_tuple(common_pair< UTypes... > const &&other)
Constructs from common_pair.
Definition: common_tuple.hpp:144
constexpr common_tuple const & operator=(common_tuple< UTypes... > const &&other) const
Assigns from common_tuple.
Definition: common_tuple.hpp:303
constexpr friend bool operator<(common_tuple const &lhs, common_tuple< UTypes... > const &rhs)
Checks whether lhs is less than rhs.
Definition: common_tuple.hpp:721
constexpr common_tuple const & operator=(common_pair< UTypes... > const &&other) const
Assigns from common_pair.
Definition: common_tuple.hpp:413
constexpr common_tuple & operator=(std::tuple< UTypes... > &&other)
Assigns from std::tuple.
Definition: common_tuple.hpp:458
constexpr common_tuple(std::tuple< UTypes... > &other)
Constructs from std::tuple.
Definition: common_tuple.hpp:156
constexpr common_tuple(UTypes const &... other)
Constructs from arguments.
Definition: common_tuple.hpp:77
constexpr common_tuple & operator=(common_tuple< UTypes... > const &&other)
Assigns from common_tuple.
Definition: common_tuple.hpp:251
constexpr common_tuple const & operator=(std::tuple< UTypes... > const &&other) const
Assigns from std::tuple.
Definition: common_tuple.hpp:523
constexpr common_tuple const & operator=(std::pair< UTypes... > const &other) const
Assigns from std::pair.
Definition: common_tuple.hpp:607
constexpr common_tuple & operator=(std::tuple< UTypes... > const &other)
Assigns from std::tuple.
Definition: common_tuple.hpp:445
constexpr friend bool operator<(common_tuple const &lhs, std::tuple< UTypes... > const &rhs)
Checks whether lhs is less than rhs.
Definition: common_tuple.hpp:826
constexpr common_tuple & operator=(std::pair< UTypes... > &&other)
Assigns from std::pair.
Definition: common_tuple.hpp:568
constexpr common_tuple(std::pair< UTypes... > const &&other)
Constructs from std::pair.
Definition: common_tuple.hpp:200
constexpr friend bool operator>=(common_tuple const &lhs, common_tuple< UTypes... > const &rhs)
Checks whether lhs is greater than or equal to rhs.
Definition: common_tuple.hpp:763
constexpr common_tuple const & operator=(common_tuple< UTypes... > &other) const
Assigns from common_tuple.
Definition: common_tuple.hpp:264
constexpr common_tuple & operator=(std::pair< UTypes... > &other)
Assigns from std::pair.
Definition: common_tuple.hpp:542
Provides seqan3::common_pair.
constexpr ptrdiff_t count
Count the occurrences of a type in a pack.
Definition: traits.hpp:164
T make_from_tuple(T... args)
The main SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
common_tuple(UTypes...) -> common_tuple< UTypes... >
Class template argument deduction guide.
constexpr auto const & get(configuration< configs_t... > const &config) noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: configuration.hpp:415
SeqAn specific customisations in the standard namespace.
A std::pair implementation that incorporates most changes from C++23's standard library.
Definition: common_pair.hpp:28
Provides various traits for template packs.