有没有一种方法来编写一个模板函数,可以在给定的struct
的不同成员上运行?结构成员上的模板函数
一个错误例子看起来像:
struct Foo
{
int a, b;
}
template <MEMBER x> //which does not exist
cout_member(Foo foo)
{
cout << foo.x << endl;
}
int main()
{
Foo foo;
cout_member<a>(foo);
cout_member<b>(foo);
return 0;
}
我想象中的基于交换机上的一个答案,但后来我想,如果这个开关会在运行时进行测试(我想如何避免)还是编译时?
为什么你需要这个? – user0042
我正在求解一个二维网格的耦合偏导数方程组,我想为每个单元的所有物理量都有一个单一的空间导数函数......或者至少要减少函数的数量来复制/过去! –
似乎多余和麻烦可能是一个XY问题。 –