std::common_type - cppreference.com (original) (raw)
| | | | | --------------------------------------------------------------------------------------------------------------------- | | ------------- | | template< tuple-like TTuple, tuple-like UTuple > requires /* see below */ struct common_type<TTuple, UTuple>; | | (since C++23) |
The common type of two tuple-like types is a std::tuple consists of the common types of all corresponding element type pairs of both types.
Given
TTypesas the pack formed by the sequence of std::tuple_element_t<i, TTuple> for every integer i in[0,std::tuple_size_v<TTuple>), andUTypesas the pack formed by the sequence of std::tuple_element_t<i, UTuple> for every integer i in[0,std::tuple_size_v<UTuple>),
the following constraints need to be satisfied:
TTupleorUTupleis a std::tuple specialization.- std::is_same_v<TTuple, std::decay_t<TTuple>> is true.
- std::is_same_v<UTuple, std::decay_t<UTuple>> is true.
- std::tuple_size_v<TTuple> equals std::tuple_size_v<UTuple> (
TTupleandUTuplehave the same number of elements). - std::tuple<std::common_type_t<TTypes, UTypes>...> denotes a type.