假设我有一个包含一堆成员变量的结构。我想编写一个函数来设置任何这些成员的值(以及其他一些东西,但我认为这超出了问题的范围)。像(但显然不是)这样的东西:
struct A
{
A() { /* do stuff */ }
bool a1;
bool a2;
bool a3;
void set_member(???);
bool get_member(???);
};
A a;
a.set_member(a1, true);
bool value = a.get_member(a1);
现在,我的第一个想法是使用数组而不是一堆命名变量。我想这样做,但如果我能提供帮助,这是我不想以这种方式接触的代码(它是遗留的)。它有一个构造函数,所以我什至不确定它是否会保持它的二进制可序列化特性,因为它不是 POD。即使它是 POD,我仍然不相信 as a1
,a2
并且a3
可以具有与 s 数组不同的对齐方式bool
。
那么,回到最初的问题,有没有办法做到这一点?也许有一些我还不知道的模板技巧?