我使用boost :: variant进行存储,一个可能的数据成员是一个大型结构。所以二进制变体的大小至少是这个结构大小。在我的情况下,所有其他成员都非常小,如int或double。 为了避免基本的大布局,有没有办法强制boost :: variant将项目存储为指针? 当然,我可以使用智能指针来保存的500个字节强制变量存储指针
这个大结构,但在这种情况下,得到了Methode也将工作作为指针访问..这是不是很好
boost::variant<int,double,large_struct>>
尺寸或者其他小的解决方案,但每个接入具有处理指针
boost::variant<int,double,shared_ptr<large_struct>
的sizeof 40个字节
因此,你要在哪里存储'large_struct',以便它不会占用相同的500字节内存? –