我会用一些代码开始:
class myNonPODClass
{
public:
virtual ~myNonPODClass() {}
class
{
public:
myNonPODClass* GetContainer()
{
return (myNonPODClass*)((int8_t*)(this) - offsetof(myNonPODClass, member));
}
} member;
};
显然,这是一个人为的例子。 代码编译好,但我担心的是“对非POD类型‘myNonPODClass’胶印”。 有没有更好的办法基本上做同样的事情,而不必到myNonPODClass指针传递到嵌套的匿名类构造函数(或类似)? “会员”必须准备好去没有任何初始化。 可能吗? 谢谢!
如果你想知道我可以想这个对,我的财产宏观和引擎收录一个注释掉的例子(是的,它的真棒^^)地球上什么: http://pastebin.com/xnknf39m