// 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の演算子*をオーバーロードしたいのですが、上記のコードで次のエラーが発生しました:vec2.cpp:68:エラー:'vec2 vec2 :: operator *(v_float&、vec2&)'はゼロまたは1つの引数
テンプレートクラスの演算子*(float、vec2)をオーバーロードする方法は?operator*のパラメーターの数は2でなければならないことに注意してください。