C++ STL vector演算子のオーバーロードについてですが、分からないことがございますので
教えていただければ幸です。(値渡し参照渡しの表記の仕方を完全に理解していれば問題ないのかもしれませんが)一つ目ですが、
template <typename T>
std::vector<T>& operator+=(std::vector<T> &self, const std::vector<T> &other){
for(int i = 0; i < (int)self.size(); i++)
self[i] += other[i];
return self;
}
template <typename T>
std::vector<T> operator+(const std::vector<T> &self,
const std::vector<T> &other){
std::vector<T> result = self;
result += other;
return result;
}
+演算子の方は新しいvectorを生成するだけですので、constメソドになりそうですが、
試行錯誤してもうまくいきません。resultにselfを値渡しが出来ればいいと思いますが、
それが出来ていないだと思います。
初歩的なことだとは思いますが、まったくうまくいきません。
アドバイスをいただけると助かります。