Files
2025-10-25 03:02:53 +03:00

2.9 KiB
Raw Permalink Blame History

[tuple.common.ref]

22 General utilities library [utilities]

22.4 Tuples [tuple]

1

#

In the descriptions that follow:

  • (1.1)

    Let TTypes be a pack formed by the sequence of tuple_element_t<i, TTuple> for every integer 0≤i<tuple_size_v.

  • (1.2)

    Let UTypes be a pack formed by the sequence of tuple_element_t<i, UTuple> for every integer 0≤i<tuple_size_v.

🔗

template<[tuple-like](tuple.like#concept:tuple-like "22.4.3Concept tuple-like[tuple.like]") TTuple, [tuple-like](tuple.like#concept:tuple-like "22.4.3Concept tuple-like[tuple.like]") UTuple, template<class> class TQual, template<class> class UQual> struct basic_common_reference<TTuple, UTuple, TQual, UQual> { using type = see below; };

2

#

Constraints:

  • (2.1)

    TTuple is a specialization of tuple orUTuple is a specialization of tuple.

  • (2.2)

    is_same_v<TTuple, decay_t> is true.

  • (2.3)

    is_same_v<UTuple, decay_t> is true.

  • (2.4)

    tuple_size_v equals tuple_size_v.

  • (2.5)

    tuple<common_reference_t<TQual, UQual>...> denotes a type.

The member typedef-name type denotes the typetuple<common_reference_t<TQual, UQual>...>.

🔗

template<[tuple-like](tuple.like#concept:tuple-like "22.4.3Concept tuple-like[tuple.like]") TTuple, [tuple-like](tuple.like#concept:tuple-like "22.4.3Concept tuple-like[tuple.like]") UTuple> struct common_type<TTuple, UTuple> { using type = see below; };

3

#

Constraints:

  • (3.1)

    TTuple is a specialization of tuple orUTuple is a specialization of tuple.

  • (3.2)

    is_same_v<TTuple, decay_t> is true.

  • (3.3)

    is_same_v<UTuple, decay_t> is true.

  • (3.4)

    tuple_size_v equals tuple_size_v.

  • (3.5)

    tuple<common_type_t<TTypes, UTypes>...> denotes a type.

The member typedef-name type denotes the typetuple<common_type_t<TTypes, UTypes>...>.