std::vector
の要素への参照をnon-const
へ返す方法を理解するのに苦労しています。私が行くよ何の簡単な例では、ベクトル要素への非const参照を返すConstメソッド
template<class T>
class MyClass
{
public:
MyClass : myVec(3)
{
}
T& x() const
{
return *(myVec.data())[0]
}
std::vector<T> myVec;
}
私はつもりだ行動は、私は、次のようなものを行うことができるようにしたいということで、ある
MyClass obj<double>;
obj.x() = 3.3;
assert(obj.x()==3.3)
Eigen同じ種類の動作を提供しますが、動作させる方法を理解できませんでした。
@jlackなぜ定数でないオブジェクトへの参照を返そうとしているのかは不明です。 –
'x'はなぜconstですか?あなたが変異アクセサーを持っているなら、それはconstであってはいけません。 – NathanOliver
コンテナ内のアイテムがコンテナであるために定数である必要があるかどうかは議論の余地があります。非定数ポインタの定数コンテナがある場合、それは根本的に異なるのでしょうか?あなたは、その値が何であるのではなく、どの項目が存在するかにのみ適用するものとしてconstを参照することができます。 – nate