Несколько имен для одной и той же переменной в C ++

Возможно ли в C ++ ссылаться на одну и ту же переменную, используя разные имена, без использования препроцессора?

Для достижения того же эффекта, что и этот псевдокод

struct vec3f {
    float[3] values;
};

struct color : public vec3f {
    #define r values[0]
    #define g values[1]
    #define b values[2]
};

color c;
c.r = 0.5f;

Следующий код имеет правильную семантику, за исключением выделения места в структуре для трех ссылок:

struct color : public vec3f {
    float& r;
    float& g;
    float& b;
    color() : r(values[0]), g(values[1]), b(values[2]) { }
};

Есть ли способ получить эту замену имени во время компиляции без увеличения размера структуры?

5
задан wjd 29 December 2011 в 23:09
поделиться