有沒有一種方法來編寫一個模板函數,可以在給定的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問題。 –