// vec2.h
template<class v_float=float>
class vec2
{
public:
v_float m[2];
};
template<class v_float>
vec2<v_float> operator* (v_float & f, vec2<v_float> & v);
template<class v_float>
vec2<v_float> vec2<v_float>::operator* (v_float & f, vec2 & v)
{
return vec2(v.m[0]*f, v.m[1]*f);
}
我想为上面的模板类 vec2 重载 operator*,但是上面的代码给了我以下错误: vec2.cpp:68: error: 'vec2 vec2::operator*(v_float&, vec2&)' must take either zero or一个论点
如何为模板类重载 operator*(float, vec2)?注意 operator* 的参数个数必须是两个。