我将从一些代码开始:
class myNonPODClass
{
public:
virtual ~myNonPODClass() {}
class
{
public:
myNonPODClass* GetContainer()
{
return (myNonPODClass*)((int8_t*)(this) - offsetof(myNonPODClass, member));
}
} member;
};
显然,这是一个人为的例子。代码编译得很好,但我担心“非 POD 类型'myNonPODClass'的偏移量”。有没有更好的方法来做本质上相同的事情而不必将 myNonPODClass 指针传递给嵌套的匿名类构造函数(或类似的构造函数)?“成员”必须准备好无需任何初始化。可能吗?谢谢!
如果你想知道我到底想要什么,我的 PROPERTY 宏和 pastebin 上的注释示例(是的,它很棒 ^^): http: //pastebin.com/xnknf39m