你可以向工会成员提供"成员指针"吗?

MSa*_*ers 4 c++

我可以找到的所有描述都在类的上下文中讨论"指向成员的指针".工会与结构非常相似,特别是也有成员.你能指点那些成员吗?

例如

union x {
    int a;
    float b;
};
int x::*p = &x::a;
Run Code Online (Sandbox Code Playgroud)

我不是在谈论整个联盟的指针,作为联盟成员的指针等p在上面的例子中实际上是一个偏移,显然是大小0.我需要这个结构来回答这个问题.

Pot*_*ter 5

§3.9.2/ 1:复合类型可以通过以下方式构造:...指向非静态50类成员的指针,它们在给定类的对象中标识给定类型的成员,

§8.3.3/ 1:在一个声明TD中,其中D具有形式......并且嵌套名称说明符表示一个类,......

§5.3.1/ 3:一元运算&符的结果是指向其操作数的指针.操作数应为左值或限定ID.如果操作数是一个qualified-idm,C用类型命名某个类的非静态成员T,则结果的类型为"指向类型为C的C类成员的指针",并且是一个prvalue指定C::m.

当然§9.5/ 5:联合是一个用类密钥定义的类union......

(§3.9.2/ 1也提到:工会,这是班级......)

没有提到该类不能成为一个联合,所以是的,你可以形成这样的PTM类型和值.