私は 3 次元座標を含むライブラリを作成していますが、3 次元角度のコンポーネントにはヨー ピッチ ロールとヘディング エレベーション バンクの 2 つの名前があることを発見しました。
だから私は次のようにしました(c ++ 11で行いました):
struct Angle {
float heading;
float elevation;
float bank;
float &yaw = heading;
float &pitch = elevation;
float &roll = bank;
// Some Constructors (copy and assignment have to be made manually)
}
これには、2 つの名前スキーム間で表記法を同等に保つという利点があります。例えば:
Angle angle;
rotate(angle.yaw); // this is equivalent to rotate(angle.heading)
コンパイラーが参照が不要であると判断するのか、それともポインターを構造体に保持するのか疑問に思っていました。
また、1人のメンバーに2つの名前を持つより良い方法はありますか?