我能找到的所有描述都讨论了类上下文中的“指向成员的指针”。工会与结构非常相似,特别是也有成员。您也能指点一下这些成员吗?
E.g.
union x {
int a;
float b;
};
int x::*p = &x::a;
我不是在谈论指向整个联合体的指针、作为联合体成员的指针等。p
在上面的例子中,实际上是一个偏移量,显然大小为 0。我需要这个构造来回答这个问题 https://stackoverflow.com/questions/14375558/select-an-union-member-depending-on-a-template-parameter.
§3.9.2/1:复合类型可以通过以下方式构造:…指向非静态 50 个类成员的指针,它们标识给定类的对象内给定类型的成员,
§8.3.3/1:在声明 T D 中,其中 D 的形式为……并且嵌套名称说明符表示一个类,...
§5.3.1/3:一元的结果&
运算符是指向其操作数的指针。操作数应为左值或合格的 ID。如果操作数是合格的 ID命名非静态成员m
某类的C
与类型T
,结果的类型为“指向类型 T 的类 C 的成员的指针”,并且是一个纯右值,指定C::m
.
当然还有§9.5/5:Aunion是用 class-key 定义的类union
…
(§3.9.2/1 还提到:unions,这是类......)
没有提到类不能是联合,所以是的,您可以形成这样的 PTM 类型和值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)