2015-10-21 34 views
2

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

例如,给定的T,S类型我想要的东西,将确定Q类型。

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

它应该工作,以及如果操作者是类成员。

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

是否有可能呢?

回答

5

您可以使用auto

auto c = a * b; 

或者decltype

decltype(a * b); 

或者,如果你不具备TS情况下,你可以使用std::declval

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

谢谢我知道前两个,但我没有他的实例,并正在寻找第三件事!非常感谢! – cerkiewny

相关问题