std::common_type<tuple-like>

出自cppreference.com
 
 
 
 
在標頭 <tuple> 定義
template< tuple-like TTuple, tuple-like UTuple >
    requires /* 见下文 */
struct common_type<TTuple, UTuple>;
(C++23 起)

兩個 tuple-like 類型的公共類型是由它們的所有對應元素類型對的公共類型組成的 std::tuple

給定

  • TTypes[0std::tuple_size_v<TTuple>) 中的每個整數 i 對應的 std::tuple_element_t<i, TTuple> 的序列組成的包,
  • UTypes[0std::tuple_size_v<UTuple>) 中的每個整數 i 對應的 std::tuple_element_t<i, UTuple> 的序列組成的包,

需要滿足以下約束:

  • TTupleUTuplestd::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>TTupleUTuple 的元素數量相同)。
  • std::tuple<std::common_type_t<TTypes, UTypes>...> 能夠表示一個類型。

成員類型

成員類型 定義
type std::tuple<std::common_type_t<TTypes, UTypes>...>

示例

參閱

確定一組類型的公共類型
(類模板) [編輯]
確定兩個 pair 的公共類型
(類模板特化) [編輯]