В этом сценарии я бы просто использовал ссылку, поскольку она подходит для них. Если ссылки слишком велики, я бы просто отказался от псевдонима и использовал полное выражение.
Однако этого можно достичь с помощью макроса (читай: зло )
class someClass
{
public:
someStruct m_member;
#define m_x m_member.x
#define m_y m_member.y
...
#undef m_x
#undef m_y
};
Я бы настоятельно рекомендовал не делать это, хотя. Как и все макросы, хотя и имеет некоторые непредвиденные последствия (может привести к неправильной ссылке на другие допустимые значения m_x
внутри типа).
Например
struct s1 {
int m_x;
};
class someClass {
public:
someStruct m_member;
#define m_x m_member.x
#define m_y m_member.y
...
void Example(S1& s1) {
s1.m_x = 42; // This wouldn't compile and you'd get terrible error messages
}
};