要素へのアクセスを有効にするために、既に演算子 [ ] をオーバーロードしています。
意味
double Matrix::operator[ ](const & int i){
return data[i]; // data[] is a member array: thrust:: device_vector
}
利用方法
Matrix m = ... // initialize
std::cout << m[3] << std::endl;
しかし、今はインデックスで要素にアクセスして、新しい値を割り当てたいと思っています。
利用方法
m[3] = 0.;
演算子オーバーロード関数の戻り値は左辺値でなければならないことを理解しています。参照を返す必要があると思いますが、これがどのように行われるかわかりません。ありがとう!
編集
ここで、定義を double & に変更しましたが、それでも文句を言います:
error: initial value of reference to non-const must be an lvalue
配列は、インデックスによって値を割り当てることができる、thrust::device_vector を参照します。
Thrust::device_vector<double> M(10);
M[3] = 0.;