// 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:ERROR:「VEC2 VEC2 ::演算子*を( v_float &、vec2 &) 'は0または1つの引数をとる必要がありますオーバーロードテンプレート演算子*
テンプレートクラスの演算子*(float、vec2)をオーバーロードする方法はありますか?演算子*のパラメータ数は2でなければならないことに注意してください。
事業者のためのパラメータの数は、それらがメンバー機能として実装した場合に、1以下です。 – trutheality