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クラスです.