Class reference member points to other member in same class
===

I am making a library that involves 3-D coordinates, and discovered that there are two names for the components of a 3-D angle: yaw-pitch-roll and heading-elevation-bank

So I made the following (done in 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)
     }

Which has the benefit of keeping the notation equivalent between the two name-schemes.  For example:

    Angle angle;
    rotate(angle.yaw); // this is equivalent to rotate(angle.heading)

I was wondering if the compiler would figure out the references were unnecessary, or if it would keep the pointers in the structure.

Also, is there a better way to have two names for one member?
