我甚至不確定這是叫什麼。如何將覆蓋傳遞給結構模板類型或變量模板類型到函數中?
我希望做類似這樣的事情......有一個函數將arg引用爲帶有兩個模板的模板類型,但其中一個模板未設置爲石頭。
我的問題是我用什麼來代替WHAT_DO_I_PUT_HERE
來得到這個編譯?我已經嘗試過各種東西,比如傳遞void和「struct Hash」(第二個模板聲明爲class Hash = hash<Value>
)
注意:我不能使用C++ 11。
void doTest(std::tr1::unordered_set<std::string, WHAT_DO_I_PUT_HERE> &set) {
...
}
struct HashStructOne {
size_t operator()(const std::string &item) const {...}
};
struct HashStructTwo {
size_t operator()(const std::string &item) const {...}
};
int main() {
std::tr1::unordered_set<std::string, HashStructOne> set1;
std::tr1::unordered_set<std::string, HashStructTwo> set2;
doTest(set1);
doTest(set2);
}
宏'HashStructOne'和'HashStructTwo'是兩種截然不同的類型。我不認爲有什麼方法可以在不使用模板或虛函數的情況下對兩種不同類型或成員函數使用相同的函數。 – Jason 2014-10-03 16:36:59