是否可以创建一个动态数组来保存结构中每个变量的名称?
typedef struct dataSave {
uint8_t nb;
bool state;
uint16_t dataIRArray[512];
} dataSave_t;
dataSave_t mysave;
template <typename T>
struct config_t {
auto T::*var;
char* name;
};
const config_t<dataSave_t> config[] = {
{&dataSave_t::nb, "nb"},
{&dataSave_t::state, "state"},
{&dataSave_t::dataIRArray, "dataIRArray"}
};
结构变量的类型不同,并且总是生成错误:
错误:使用占位符“auto”声明了非静态数据成员
我需要创建类似于动态遍历JSON并转换JSON数据的东西,只需将其添加到配置列表中即可。
1条答案
按热度按时间xqnpmsa81#
我猜你想要这样的东西:
它使用基本的多态技术来存储一个基类对象数组(指向基类对象的智能指针),其中所有的实际工作都是由派生对象通过虚函数完成的。在这种情况下,实际工作是
from_string
和to_string
。您可以用执行任何实际工作的函数来替换它们,或者只定义my_to_string
和my_from_string
。