【发布时间】:2018-01-22 12:24:56
【问题描述】:
有没有办法编写一个能够在给定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;
}
我设想了一个基于开关的答案,但我想知道这个开关是在运行时(我想避免的)还是在编译时进行测试?
【问题讨论】:
-
你为什么需要那个?
-
我正在求解一个二维网格的耦合偏导数方程系统,我想为每个单元的所有物理量提供一个空间导数函数......或者至少减少要复制/过去的功能数量!
-
看起来是多余和麻烦的可能是XY问题。
标签: c++ templates struct switch-statement