2
我有以下问题。 对于我的模板类之一,我也想采用其他两种类型的第一个应用乘法运算符的类型。换句话说,如果我带两个类实例并将它们相乘,结果类型是什么。乘法类型的确定
例如,给定的T,S类型我想要的东西,将确定Q类型。
Q operator*(T& a, S& b);
它应该工作,以及如果操作者是类成员。
class T{ Q operator*(S& a); };
是否有可能呢?
我有以下问题。 对于我的模板类之一,我也想采用其他两种类型的第一个应用乘法运算符的类型。换句话说,如果我带两个类实例并将它们相乘,结果类型是什么。乘法类型的确定
例如,给定的T,S类型我想要的东西,将确定Q类型。
Q operator*(T& a, S& b);
它应该工作,以及如果操作者是类成员。
class T{ Q operator*(S& a); };
是否有可能呢?
您可以使用auto
:
auto c = a * b;
或者decltype
:
decltype(a * b);
或者,如果你不具备T
和S
情况下,你可以使用std::declval
:
decltype(std::declval<T>() * std::declval<S>());
谢谢我知道前两个,但我没有他的实例,并正在寻找第三件事!非常感谢! – cerkiewny