我想知道是否有辦法將字段名稱傳遞給函數模板。考慮以下幾點:將字段名稱傳遞給函數模板
struct Type1{
unsigned int Field1;
unsigned int Field2;
};
struct Type2{
unsigned int Field2;
unsigned int Field3;
};
template <typename TYPE>
bool MyFunction(TYPE _Type){
if(_Type.Field1==5)
return false;
}
這工作得很好,但是內MyFunction
我指定.Field1
,是有辦法,我可以通過這個字段的名稱爲模板,例如:
void TestFunction(){
Type1 mt1;
MyFunction(mt1, Field1);
}
顯然,我不是在這裏模擬一個類型,我對這個被稱爲的東西感到不知所措(除了顯而易見的答案 - 傻!),所以我甚至努力尋找解決方案。
你可能想看看指向成員的概念。 – 2013-03-09 18:46:21
與你所問的問題無關,但'_Type'是爲實現保留的,所以你不允許使用它(即這樣做會導致未定義的行爲)。 – 2013-03-09 18:46:53
@ n.m。謝謝我剛要回復,我會開始尋找,直到答案滾滾而來! :) – R4D4 2013-03-09 18:47:55