重複の可能性:
クラスはデータ メンバーをシーケンシャル メモリに格納しますか?
以下が正しい理由を尋ねたかっただけです。
template<class T>
class Vec3 {
public:
// values
T x,y,z;
// returns i-th komponent (i=0,1,2) (RHS array operator)
const T operator[] (unsigned int i) const {
return *(&x+i);
}
}
つまり、x、y、および z が常にメモリ内で sizeof(T) 単位離れていることが常に保証されるのはなぜですか。これらの 2 つの変数の間にフラグメンテーション ホールが存在し、この演算子が偽の値を返すことはあり得ないのでしょうか?