C++ 11'den itibaren std::common_type
tür özelliği tanıtıldı. std::common_type
, tüm şablon bağımsız değişkenleri arasındaki ortak türü belirler. C + + 14'te, std::common_type_t
yardımcı tipi, std::common_type
tipi özelliği daha kısa kullanan bir kod yapmak için tanıtılmıştır. onun şablonları argümanlar tiplerinde inşa edilir, düzgün çalışırstd :: common_type özelliği
template<typename T1, typename T2>
std::common_type_t<T1, T2> operator+(T1 const &t1, T2 const &t2) {
return t1 + t2;
}
std::common_type
, örneğin aşırı aritmetik operatörler özellikle yararlıdır (örneğin int
, double
). Ancak ben mesela kullanıcı tanımlı türleri olarak şablon argümanları sağlarsanız, çalışmak için görünmüyor
struct A {};
struct B {};
std::common_type_t<A, B> // doesn't work
S: Ben kullanıcı tanımlı türleri ile std::common_type
sürekli çalışması nasıl?