問題は、演算子のパラメーター化されたオーバーロードを作成する方法を見つけることができるかどうかです。つまり、代わりに
template <class T>
class A
{
private:
T m_var;
public:
operator T () const { return m_var; }
const A operator+ ( const A& r_var ) const { return m_var + r_var; }
const A operator- ( const A& r_var ) const { return m_var - r_var; }
const A operator* ( const A& r_var ) const { return m_var * r_var; }
const A operator/ ( const A& r_var ) const { return m_var / r_var; }
...........
}
このようなものを持つために
template <class T>
class A
{
private:
T m_var;
public:
operator T () const { return m_var; }
const A operator 'X' ( const A& r_var ) const { return m_var 'X' r_var; }
...........
}
ここで、「X」は値 +、-、*、/ を取り、このようにして同じパターン コードの繰り返しを回避します。前もって感謝します。