我甚至不确定这是叫什么。如何将覆盖传递给结构模板类型或变量模板类型到函数中?
我希望做类似这样的事情......有一个函数将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