メソッドにr値を返すようにすることについて考えていました。具体的には、オーバーロードされた演算子を使用してこれを行う方法があるかどうか疑問に思いました。私はこのコードを持っています:
struct vec4 {
float x;
float y;
float z;
float w;
...
inline float operator [] (int i)
{
switch (i) {
case 0:
return this->x;
case 1:
return this->y;
case 2:
return this->z;
case 3:
return this->w;
default:
exit(1);
return 0;
}
}
};
どうすればこれを変更して、何かを次のような効果に使用できるようにすることができますか
vec4 v;
...
v[2] = 5.0f;
C ++ 11での右辺値参照について聞いたことがありますが、それらは潜在的な解決策になる可能性がありますか?
編集:実際のコードを挿入する方法を見つけました。