◐ Shell
clean mode source ↗

std::basic_common_reference<tuple-подобный> — cppreference.com

Материал из cppreference.com

<tbody> </tbody>

Определено в заголовочном файле <tuple>

template< tuple-like TTuple, tuple-like UTuple, template<class> class TQual, template<class> class UQual > requires /* смотрите ниже */ struct basic_common_reference<TTuple, UTuple, TQual, UQual>;

(начиная с C++23)

Общим ссылочным типом двух tuple-like типов является std::tuple, состоящий из общих ссылочных типов всех соответствующих пар типов элементов обоих типов, где cv и ссылочные квалификаторы tuple-подобных типов применяются к типам их элементов.

Дано

  • TTypes как пакет, образованный последовательностью std::tuple_element_t<i, TTuple> для каждого целого числа i в [0std::tuple_size_v<TTuple>), и
  • UTypes как пакет, образованный последовательностью std::tuple_element_t<i, UTuple> для каждого целого числа i в [0std::tuple_size_v<UTuple>),

должны быть выполнены следующие ограничения:

  • TTuple или UTuple это специализация std::tuple specialization.
  • 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>>...>

Пример

Смотрите также