C++/CLIの代入演算子

Vector^ operator+=( const Vector^ v )
{
    assert(m_size == v->m_size);
    for(size_type i=0 ; i<m_size ; ++i)m_array[i] += v->m_array[i];
    return this;
}

のように記述したのですが,どうもC#側から利用することができません.


調べてみたところ,

static Vector^ operator+( const Vector^ v1, const Vector^ v2 )
{
    assert(v1->m_size == v2->m_size);
    return (gcnew Vector(v1)) += v2;
}

2項演算子が定義されていれば,
E1 op= E2;
は,
E1 = E1 op E2;
のように変換されるようです.


これで,ベクトルを扱うVectorクラスは移植完了.
次はいよいよMatrixクラスです.


参考