Я делаю библиотеку, которая включает координаты 3 -D, и обнаружил, что есть два названия для компонентов 3 -D угол :рыскание -тангаж -крен и курс -возвышение -банка
Итак, я сделал следующее (на С++ 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)
}
Преимущество этого заключается в сохранении эквивалентности обозначений между двумя схемами имен -. Например:
Angle angle;
rotate(angle.yaw); // this is equivalent to rotate(angle.heading)
Мне было интересно, поймет ли компилятор, что ссылки не нужны, или сохранит указатели в структуре.
Кроме того, есть ли лучший способ иметь два имени для одного участника?