【发布时间】:2018-05-02 05:55:06
【问题描述】:
我有一个结构体Widget,里面有几个字段:
struct Widget
{
Some field1;
Another second_field;
...
};
从概念上讲,我需要这些小部件的数组或向量,即std::vector<Widget>。但出于性能原因,所有这些字段都应该在它自己的数组中,即:
struct Widgets
{
vector<Some> field1;
vector<Another> second_field;
...
};
那么,鉴于Widget 在 C++ 中有哪些可能的方法可以将其字段分散在多个向量上,即将结构数组转换为字段数组结构?手动定义一些合理的元数据是可以的(在Widget内部或外部),但首选没有额外元数据的解决方案。
为了澄清,我正在寻找一种将Widget 结构转换为Widgets 结构的自动或半自动方法,而无需手动编码所有样板胶水。
【问题讨论】:
-
我几乎可以肯定您需要第三方工具来实现这一点。也许元类能够做到这一点,但我认为它们不可能在 2023 年之前使用该语言。
-
无法自动执行此操作。你必须用艰难的方式。
标签: c++ metaprogramming