假设我有这个设置:
struct XView;
struct X
{
...
XView view;
};
类型XView
只用于这一字段;它也是内部的,因此禁止从外部实例化它,即禁止将其用于其他任何事情。
那么,假设任何类型的对象XView
都是一个字段,是否有可能从 的地址中X::view
找到地址,完全保持在 C++ 标准定义的行为范围内并且没有类型双关语?即是否有可能做这样的事情:X
XView
void XView::some_function ()
{
X& this_x = some_computations_involving (this);
}
我当然可以存储一个指针,所以这将变得像 一样微不足道x = *this->parent_x
,但如果可能的话,我想没有一个。
编辑:请注意,我需要一个不涉及类型双关的答案,否则我宁愿使用“仅存储指针”解决方案。