确定乘法的类型

时间:2015-10-21 12:55:14

标签: c++ templates

我有以下问题。 对于我的一个模板类,我也想采用其他两种类型的第一个应用的乘法运算符的类型。换句话说,如果我采用两个类实例并将它们相乘,那将是结果类型。

例如,鉴于T,S类型,我想要一些可以确定Q类型的东西。

Q operator*(T& a, S& b);

如果运算符是类成员,它也应该工作。

class T{ Q operator*(S& a); };

有可能吗?

1 个答案:

答案 0 :(得分:5)

您可以使用auto

auto c = a * b;

decltype

decltype(a * b);

如果您没有TS的实例,则可以使用std::declval

decltype(std::declval<T>() * std::declval<S>());