cpp / latest / utility / tuple / basic_common_reference.html /

std::basic_common_reference<std::tuple>

Defined in header <tuple>
template< class... Ts, class... Us,
          template<class> class TQual, template<class> class UQual >
    requires requires {
        typename std::tuple<std::common_reference_t<TQual<Ts>, UQual<Us>>...>;
    }
struct basic_common_reference<std::tuple<Ts...>, std::tuple<Us...>, TQual, UQual>;
(since C++23)

The common reference type of two tuples is a tuple consists of the common reference types of all corresponding element type pairs of both tuples, where the cv and reference qualifiers on the tuples are applied to their element types.

The common reference type is defined only if both tuples have the same number of elements, and their all corresponding element type pairs have common reference types.

Member types

Member type Definition
type std::tuple<std::common_reference_t<TQual<Ts>, UQual<Us>>...>

Example

See also

(C++20)
determines the common reference type of a group of types
(class template)
(C++23)
determines the common reference type of two pairs
(class template specialization)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/utility/tuple/basic_common_reference