std::basic_common_reference<tuple-like>
Определён в заголовке <tuple> | ||
|---|---|---|
template< tuple-like TTuple, tuple-like UTuple,
template<class> class TQual, template<class> class UQual >
requires /* see below */
struct basic_common_reference<TTuple, UTuple, TQual, UQual>;
| (начиная с C++23) |
Общий ссылочный тип двух типов tuple-like — это std::tuple, состоящий из общих ссылочных типов всех соответствующих пар типов элементов обоих типов, с применением cv-квалификаторов и квалификаторов ссылок типов tuple-like к их типам элементов.
Пусть
-
TTypes— пакет, образованный последовательностью std::tuple_element_t<i,TTuple> для каждого целого числаiв[0,std::tuple_size_v<TTuple>), и -
UTypes— пакет, образованный последовательностью std::tuple_element_t<i,UTuple> для каждого целого числаiв[0,std::tuple_size_v<UTuple>),
должны выполняться следующие ограничения:
-
TTupleилиUTupleявляется специализациейstd::tuple. -
std::is_same_v<TTuple, std::decay_t<TTuple>>являетсяtrue. -
std::is_same_v<UTuple, std::decay_t<UTuple>>являетсяtrue. -
std::tuple_size_v<TTuple>равноstd::tuple_size_v<UTuple>(TTupleиUTupleимеют одинаковое число элементов). - std::tuple<std::common_reference_t<TQual<TTypes>...,UQual<UTypes>>...> обозначает тип.
Типы-члены
| Тип-член | Определение |
|---|---|
type | std::tuple<std::common_reference_t<TQual<TTypes>...,UQual<UTypes>>...> |
Пример
См. также
|
(C++20) | определяет общий ссылочный тип для группы типов (шаблон класса) |
|
(C++23) | определяет общий ссылочный тип двух pair (специализация шаблона класса) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/utility/tuple/basic_common_reference