20#include <range/v3/utility/common_tuple.hpp>
29template <
class... Types>
72 template <
class... UTypes>
73 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<Types, UTypes &> && ...)
77 template <
class... UTypes>
78 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<Types, UTypes const> && ...)
82 template <
class... UTypes>
83 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<Types, UTypes> && ...)
87 template <
class... UTypes>
88 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<Types, UTypes const> && ...)
98 template <
class... UTypes>
99 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<Types, UTypes &> && ...)
103 template <
class... UTypes>
104 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<Types, UTypes const> && ...)
109 template <
class... UTypes>
110 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<Types, UTypes> && ...)
115 template <
class... UTypes>
116 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<Types, UTypes const> && ...)
127 template <
class... UTypes>
128 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<Types, UTypes &> && ...)
132 template <
class... UTypes>
133 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<Types, UTypes const> && ...)
138 template <
class... UTypes>
139 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<Types, UTypes> && ...)
144 template <
class... UTypes>
145 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<Types, UTypes const> && ...)
156 template <
class... UTypes>
157 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<Types, UTypes &> && ...)
161 template <
class... UTypes>
162 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<Types, UTypes const> && ...)
167 template <
class... UTypes>
168 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<Types, UTypes> && ...)
173 template <
class... UTypes>
174 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<Types, UTypes const> && ...)
183 template <
class... UTypes>
184 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<Types, UTypes &> && ...)
188 template <
class... UTypes>
189 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<Types, UTypes const> && ...)
194 template <
class... UTypes>
195 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<Types, UTypes> && ...)
200 template <
class... UTypes>
201 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<Types, UTypes const> && ...)
212 template <
class... UTypes>
213 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types, UTypes &> && ...)
218 ((std::get<N>(*
this) = std::get<N>(other)), ...);
225 template <
class... UTypes>
226 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types, UTypes const> && ...)
231 ((std::get<N>(*
this) = std::get<N>(other)), ...);
238 template <
class... UTypes>
239 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types, UTypes> && ...)
244 ((std::get<N>(*
this) = std::get<N>(other)), ...);
251 template <
class... UTypes>
252 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types, UTypes const> && ...)
257 ((std::get<N>(*
this) = std::get<N>(other)), ...);
264 template <
class... UTypes>
265 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types const, UTypes &> && ...)
270 ((std::get<N>(*
this) = std::get<N>(other)), ...);
277 template <
class... UTypes>
278 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types const, UTypes const> && ...)
283 ((std::get<N>(*
this) = std::get<N>(other)), ...);
290 template <
class... UTypes>
291 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types const, UTypes> && ...)
296 ((std::get<N>(*
this) = std::get<N>(other)), ...);
303 template <
class... UTypes>
304 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types const, UTypes const> && ...)
309 ((std::get<N>(*
this) = std::get<N>(other)), ...);
322 template <
class... UTypes>
323 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types, UTypes &> && ...)
328 ((std::get<N>(*
this) = std::get<N>(other)), ...);
335 template <
class... UTypes>
336 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types, UTypes const> && ...)
341 ((std::get<N>(*
this) = std::get<N>(other)), ...);
348 template <
class... UTypes>
349 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types, UTypes> && ...)
354 ((std::get<N>(*
this) = std::get<N>(other)), ...);
361 template <
class... UTypes>
362 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types, UTypes const> && ...)
367 ((std::get<N>(*
this) = std::get<N>(other)), ...);
374 template <
class... UTypes>
375 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types const, UTypes &> && ...)
380 ((std::get<N>(*
this) = std::get<N>(other)), ...);
387 template <
class... UTypes>
388 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types const, UTypes const> && ...)
393 ((std::get<N>(*
this) = std::get<N>(other)), ...);
400 template <
class... UTypes>
401 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types const, UTypes> && ...)
406 ((std::get<N>(*
this) = std::get<N>(other)), ...);
413 template <
class... UTypes>
414 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types const, UTypes const> && ...)
419 ((std::get<N>(*
this) = std::get<N>(other)), ...);
432 template <
class... UTypes>
433 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types, UTypes &> && ...)
438 ((std::get<N>(*
this) = std::get<N>(other)), ...);
445 template <
class... UTypes>
446 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types, UTypes const> && ...)
451 ((std::get<N>(*
this) = std::get<N>(other)), ...);
458 template <
class... UTypes>
459 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types, UTypes> && ...)
464 ((std::get<N>(*
this) = std::get<N>(other)), ...);
471 template <
class... UTypes>
472 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types, UTypes const> && ...)
477 ((std::get<N>(*
this) = std::get<N>(other)), ...);
484 template <
class... UTypes>
485 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types const, UTypes &> && ...)
490 ((std::get<N>(*
this) = std::get<N>(other)), ...);
497 template <
class... UTypes>
498 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types const, UTypes const> && ...)
503 ((std::get<N>(*
this) = std::get<N>(other)), ...);
510 template <
class... UTypes>
511 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types const, UTypes> && ...)
516 ((std::get<N>(*
this) = std::get<N>(other)), ...);
523 template <
class... UTypes>
524 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types const, UTypes const> && ...)
529 ((std::get<N>(*
this) = std::get<N>(other)), ...);
542 template <
class... UTypes>
543 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types, UTypes &> && ...)
548 ((std::get<N>(*
this) = std::get<N>(other)), ...);
555 template <
class... UTypes>
556 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types, UTypes const> && ...)
561 ((std::get<N>(*
this) = std::get<N>(other)), ...);
568 template <
class... UTypes>
569 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types, UTypes> && ...)
574 ((std::get<N>(*
this) = std::get<N>(other)), ...);
581 template <
class... UTypes>
582 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types, UTypes const> && ...)
587 ((std::get<N>(*
this) = std::get<N>(other)), ...);
594 template <
class... UTypes>
595 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types const, UTypes &> && ...)
600 ((std::get<N>(*
this) = std::get<N>(other)), ...);
607 template <
class... UTypes>
608 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types const, UTypes const> && ...)
613 ((std::get<N>(*
this) = std::get<N>(other)), ...);
620 template <
class... UTypes>
621 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types const, UTypes> && ...)
626 ((std::get<N>(*
this) = std::get<N>(other)), ...);
633 template <
class... UTypes>
634 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_assignable_v<Types const, UTypes const> && ...)
639 ((std::get<N>(*
this) = std::get<N>(other)), ...);
652 template <
class... UTypes>
653 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<UTypes, Types &> && ...)
659 template <
class... UTypes>
660 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<UTypes, Types const> && ...)
666 template <
class... UTypes>
667 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<UTypes, Types> && ...)
673 template <
class... UTypes>
674 requires (
sizeof...(Types) ==
sizeof...(UTypes)) && (std::is_constructible_v<UTypes, Types const> && ...)
691 template <
class... UTypes>
692 requires (
sizeof...(Types) ==
sizeof...(UTypes))
693 &&
requires {
requires (std::equality_comparable_with<Types, UTypes> && ...); }
696 static_assert((std::equality_comparable_with<Types, UTypes> && ...));
706 template <
class... UTypes>
707 requires (
sizeof...(Types) ==
sizeof...(UTypes))
708 &&
requires {
requires (std::equality_comparable_with<Types, UTypes> && ...); }
720 template <
class... UTypes>
721 requires (
sizeof...(Types) ==
sizeof...(UTypes))
722 &&
requires {
requires (std::totally_ordered_with<Types, UTypes> && ...); }
734 template <
class... UTypes>
735 requires (
sizeof...(Types) ==
sizeof...(UTypes))
736 &&
requires {
requires (std::totally_ordered_with<Types, UTypes> && ...); }
748 template <
class... UTypes>
749 requires (
sizeof...(Types) ==
sizeof...(UTypes))
750 &&
requires {
requires (std::totally_ordered_with<Types, UTypes> && ...); }
762 template <
class... UTypes>
763 requires (
sizeof...(Types) ==
sizeof...(UTypes))
764 &&
requires {
requires (std::totally_ordered_with<Types, UTypes> && ...); }
770#ifdef __cpp_lib_three_way_comparison
778 template <
class... UTypes>
779 requires (
sizeof...(Types) ==
sizeof...(UTypes))
780 &&
requires {
requires (std::three_way_comparable_with<Types, UTypes> && ...); }
797 template <
class... UTypes>
798 requires (
sizeof...(Types) ==
sizeof...(UTypes))
799 &&
requires {
requires (std::equality_comparable_with<Types, UTypes> && ...); }
811 template <
class... UTypes>
812 requires (
sizeof...(Types) ==
sizeof...(UTypes))
813 &&
requires {
requires (std::equality_comparable_with<Types, UTypes> && ...); }
825 template <
class... UTypes>
826 requires (
sizeof...(Types) ==
sizeof...(UTypes))
827 &&
requires {
requires (std::totally_ordered_with<Types, UTypes> && ...); }
839 template <
class... UTypes>
840 requires (
sizeof...(Types) ==
sizeof...(UTypes))
841 &&
requires {
requires (std::totally_ordered_with<Types, UTypes> && ...); }
853 template <
class... UTypes>
854 requires (
sizeof...(Types) ==
sizeof...(UTypes))
855 &&
requires {
requires (std::totally_ordered_with<Types, UTypes> && ...); }
867 template <
class... UTypes>
868 requires (
sizeof...(Types) ==
sizeof...(UTypes))
869 &&
requires {
requires (std::totally_ordered_with<Types, UTypes> && ...); }
875#ifdef __cpp_lib_three_way_comparison
883 template <
class... UTypes>
884 requires (
sizeof...(Types) ==
sizeof...(UTypes))
885 &&
requires {
requires (std::three_way_comparable_with<Types, UTypes> && ...); }
895template <
class... UTypes>
904template <
typename... args>
908template <
size_t index,
typename... args>
909struct tuple_element<index,
seqan3::
common_tuple<args...>> :
public tuple_element<index, std::tuple<args...>>
912template <
class... Ts,
class... Us>
919template <
class... Ts,
class... Us>
926template <
class... Ts,
class... Us>
933template <
class... Ts,
class... Us,
template <
class>
class TQual,
template <
class>
class UQual>
940template <
class... Ts,
class... Us,
template <
class>
class TQual,
template <
class>
class UQual>
947template <
class... Ts,
class... Us,
template <
class>
class TQual,
template <
class>
class UQual>
956 requires (i <
sizeof...(types))
958 return std::get<i>(
static_cast<std::tuple<types...
> &>(t));
964 requires (i <
sizeof...(types))
966 return std::get<i>(
static_cast<std::tuple<types...
> const &>(t));
971 requires (i <
sizeof...(types))
973 return std::get<i>(
static_cast<std::tuple<types...
> &&>(std::move(t)));
979 requires (i <
sizeof...(types))
981 return std::get<i>(
static_cast<std::tuple<types...
> const &&>(std::move(t)));
984template <
typename type,
typename... types>
988 return std::get<type>(
static_cast<std::tuple<types...
> &>(t));
991template <
typename type,
typename... types>
995 return std::get<type>(
static_cast<std::tuple<types...
> const &>(t));
998template <
typename type,
typename... types>
1002 return std::get<type>(
static_cast<std::tuple<types...
> &&>(std::move(t)));
1005template <
typename type,
typename... types>
1009 return std::get<type>(
static_cast<std::tuple<types...
> const &&>(std::move(t)));
1020template <
class... T>
1023template <
class... Ts,
class... Us>
1030template <
class... Ts,
class... Us>
1037template <
class... Ts,
class... Us>
1044template <
class T,
class U,
template <
class>
class TQual,
template <
class>
class UQual>
1045struct basic_common_reference;
1047template <
class... Ts,
class... Us,
template <
class>
class TQual,
template <
class>
class UQual>
1054template <
class... Ts,
class... Us,
template <
class>
class TQual,
template <
class>
class UQual>
1061template <
class... Ts,
class... Us,
template <
class>
class TQual,
template <
class>
class UQual>
A std::tuple implementation that incorporates most changes from C++23's standard library.
Definition: common_tuple.hpp:31
constexpr common_tuple & operator=(common_pair< UTypes... > &&other)
Assigns from common_pair.
Definition: common_tuple.hpp:350
constexpr common_tuple(std::pair< UTypes... > &&other)
Constructs from std::pair.
Definition: common_tuple.hpp:196
constexpr common_tuple & operator=(std::tuple< UTypes... > const &&other)
Assigns from std::tuple.
Definition: common_tuple.hpp:473
constexpr common_tuple(common_tuple< UTypes... > &other)
Constructs from common_tuple.
Definition: common_tuple.hpp:100
constexpr common_tuple const & operator=(std::tuple< UTypes... > &other) const
Assigns from std::tuple.
Definition: common_tuple.hpp:486
common_tuple(tuple_like_t &&other, std::integer_sequence< size_t, N... >)
Constructs by unfolding another tuple-like object.
Definition: common_tuple.hpp:38
constexpr common_tuple(common_pair< UTypes... > &&other)
Constructs from common_pair.
Definition: common_tuple.hpp:140
constexpr common_tuple(common_tuple< UTypes... > const &other)
Constructs from common_tuple.
Definition: common_tuple.hpp:105
constexpr friend bool operator>(common_tuple const &lhs, common_tuple< UTypes... > const &rhs)
Checks whether lhs is greater than rhs.
Definition: common_tuple.hpp:751
constexpr common_tuple & operator=(common_pair< UTypes... > const &other)
Assigns from common_pair.
Definition: common_tuple.hpp:337
base_t & as_base() noexcept
Returns the common_tuple as the underlying std::tuple type.
Definition: common_tuple.hpp:55
constexpr common_tuple const & operator=(std::tuple< UTypes... > const &other) const
Assigns from std::tuple.
Definition: common_tuple.hpp:499
constexpr common_tuple(UTypes &... other)
Constructs from arguments.
Definition: common_tuple.hpp:74
constexpr common_tuple(std::tuple< UTypes... > const &other)
Constructs from std::tuple.
Definition: common_tuple.hpp:163
constexpr common_tuple & operator=(common_tuple< UTypes... > &&other)
Assigns from common_tuple.
Definition: common_tuple.hpp:240
constexpr common_tuple(std::pair< UTypes... > &other)
Constructs from std::pair.
Definition: common_tuple.hpp:185
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:781
constexpr common_tuple(UTypes const &&... other)
Constructs from arguments.
Definition: common_tuple.hpp:89
constexpr common_tuple(std::tuple< UTypes... > &&other)
Constructs from std::tuple.
Definition: common_tuple.hpp:169
constexpr common_tuple(common_pair< UTypes... > const &other)
Constructs from common_pair.
Definition: common_tuple.hpp:134
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:870
constexpr common_tuple const & operator=(common_tuple< UTypes... > const &other) const
Assigns from common_tuple.
Definition: common_tuple.hpp:279
constexpr common_tuple const & operator=(std::pair< UTypes... > const &&other) const
Assigns from std::pair.
Definition: common_tuple.hpp:635
constexpr common_tuple const & operator=(common_pair< UTypes... > const &other) const
Assigns from common_pair.
Definition: common_tuple.hpp:389
constexpr common_tuple & operator=(std::pair< UTypes... > const &other)
Assigns from std::pair.
Definition: common_tuple.hpp:557
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:737
constexpr common_tuple & operator=(common_tuple< UTypes... > const &other)
Assigns from common_tuple.
Definition: common_tuple.hpp:227
constexpr common_tuple(std::pair< UTypes... > const &other)
Constructs from std::pair.
Definition: common_tuple.hpp:190
constexpr common_tuple & operator=(common_tuple< UTypes... > &other)
Assigns from common_tuple.
Definition: common_tuple.hpp:214
common_tuple()=default
Defaulted.
constexpr common_tuple & operator=(std::pair< UTypes... > const &&other)
Assigns from std::pair.
Definition: common_tuple.hpp:583
constexpr common_tuple & operator=(common_pair< UTypes... > const &&other)
Assigns from common_pair.
Definition: common_tuple.hpp:363
constexpr common_tuple(std::tuple< UTypes... > const &&other)
Constructs from std::tuple.
Definition: common_tuple.hpp:175
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:596
constexpr friend bool operator>(common_tuple const &lhs, std::tuple< UTypes... > const &rhs)
Checks whether lhs is greater than rhs.
Definition: common_tuple.hpp:856
constexpr common_tuple(UTypes &&... other)
Constructs from arguments.
Definition: common_tuple.hpp:84
constexpr friend bool operator!=(common_tuple const &lhs, std::tuple< UTypes... > const &rhs)
Checks whether lhs and rhs are unequal.
Definition: common_tuple.hpp:814
constexpr common_tuple const & operator=(std::pair< UTypes... > &&other) const
Assigns from std::pair.
Definition: common_tuple.hpp:622
constexpr common_tuple & operator=(std::tuple< UTypes... > &other)
Assigns from std::tuple.
Definition: common_tuple.hpp:434
constexpr common_tuple const & operator=(std::tuple< UTypes... > &&other) const
Assigns from std::tuple.
Definition: common_tuple.hpp:512
common_tuple & operator=(common_tuple const &)=default
Defaulted.
constexpr common_tuple(common_tuple< UTypes... > &&other)
Constructs from common_tuple.
Definition: common_tuple.hpp:111
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:886
constexpr common_tuple(common_pair< UTypes... > &other)
Constructs from common_pair.
Definition: common_tuple.hpp:129
constexpr friend bool operator==(common_tuple const &lhs, common_tuple< UTypes... > const &rhs)
Checks whether lhs and rhs are equal.
Definition: common_tuple.hpp:694
constexpr friend bool operator!=(common_tuple const &lhs, common_tuple< UTypes... > const &rhs)
Checks whether lhs and rhs are unequal.
Definition: common_tuple.hpp:709
constexpr common_tuple const & operator=(common_pair< UTypes... > &&other) const
Assigns from common_pair.
Definition: common_tuple.hpp:402
constexpr common_tuple const & operator=(common_tuple< UTypes... > &&other) const
Assigns from common_tuple.
Definition: common_tuple.hpp:292
constexpr common_tuple & operator=(common_pair< UTypes... > &other)
Assigns from common_pair.
Definition: common_tuple.hpp:324
constexpr common_tuple const & operator=(common_pair< UTypes... > &other) const
Assigns from common_pair.
Definition: common_tuple.hpp:376
constexpr friend bool operator==(common_tuple const &lhs, std::tuple< UTypes... > const &rhs)
Checks whether lhs and rhs are equal.
Definition: common_tuple.hpp:800
constexpr common_tuple(common_tuple< UTypes... > const &&other)
Constructs from common_tuple.
Definition: common_tuple.hpp:117
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:842
constexpr common_tuple(common_pair< UTypes... > const &&other)
Constructs from common_pair.
Definition: common_tuple.hpp:146
constexpr common_tuple const & operator=(common_tuple< UTypes... > const &&other) const
Assigns from common_tuple.
Definition: common_tuple.hpp:305
constexpr friend bool operator<(common_tuple const &lhs, common_tuple< UTypes... > const &rhs)
Checks whether lhs is less than rhs.
Definition: common_tuple.hpp:723
base_t const & as_base() const noexcept
Returns the common_tuple as the underlying std::tuple type.
Definition: common_tuple.hpp:63
constexpr common_tuple const & operator=(common_pair< UTypes... > const &&other) const
Assigns from common_pair.
Definition: common_tuple.hpp:415
constexpr common_tuple & operator=(std::tuple< UTypes... > &&other)
Assigns from std::tuple.
Definition: common_tuple.hpp:460
constexpr common_tuple(std::tuple< UTypes... > &other)
Constructs from std::tuple.
Definition: common_tuple.hpp:158
constexpr common_tuple(UTypes const &... other)
Constructs from arguments.
Definition: common_tuple.hpp:79
constexpr common_tuple & operator=(common_tuple< UTypes... > const &&other)
Assigns from common_tuple.
Definition: common_tuple.hpp:253
constexpr common_tuple const & operator=(std::tuple< UTypes... > const &&other) const
Assigns from std::tuple.
Definition: common_tuple.hpp:525
constexpr common_tuple const & operator=(std::pair< UTypes... > const &other) const
Assigns from std::pair.
Definition: common_tuple.hpp:609
constexpr common_tuple & operator=(std::tuple< UTypes... > const &other)
Assigns from std::tuple.
Definition: common_tuple.hpp:447
constexpr friend bool operator<(common_tuple const &lhs, std::tuple< UTypes... > const &rhs)
Checks whether lhs is less than rhs.
Definition: common_tuple.hpp:828
constexpr common_tuple & operator=(std::pair< UTypes... > &&other)
Assigns from std::pair.
Definition: common_tuple.hpp:570
constexpr common_tuple(std::pair< UTypes... > const &&other)
Constructs from std::pair.
Definition: common_tuple.hpp:202
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:765
constexpr common_tuple const & operator=(common_tuple< UTypes... > &other) const
Assigns from common_tuple.
Definition: common_tuple.hpp:266
constexpr common_tuple & operator=(std::pair< UTypes... > &other)
Assigns from std::pair.
Definition: common_tuple.hpp:544
Provides seqan3::common_pair.
constexpr ptrdiff_t count
Count the occurrences of a type in a pack.
Definition: traits.hpp:164
Subconcept definition for seqan3::tuple_like to test for std::tuple_size-interface.
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.