【发布时间】:2018-03-10 16:17:48
【问题描述】:
我正在尝试编写一个将向量与标量值相乘的函数。 我想返回一个数据类型最高的 Vector。
当我编译下面的代码时,我得到的错误是 “错误:decltype 的参数必须是表达式”
我该如何解决这个问题?
template<typename T>
class Vector {
private:
T* data;
int length;
template <typename S>
auto operator*(S scalar) const /
-> decltype(Vector<typename std::common_type<S,T>::type>);
{
// Function Logic
}
}
【问题讨论】:
-
只需删除
decltype。Vector<typename std::common_type<S,T>::type>已经是你想要的类型了吧?
标签: c++ c++11 templates decltype