我想在模板类中使用default参数重载一个函数,并且我想为参数设置一个默认参数 有可能??
以下示例::
template <typename T> struct endgame {
void print<T>(T a={default value}); // some thing like this should generate different functions for different typenames
};
template <typename U> endgame<T>::print(U a) {
cout << "Some unknow type " << a << endl;
}
template <> endgame<T>::print<int>(int a) {
cout << "Integer a " << a << endl;
}
感谢你
答案 0 :(得分:0)
您可以通过专门化模板类,如下所示:
template <typename T> struct endgame {
void print(T a ={}) {
cout << "Some unknow type " << a << endl;
}
};
template <> struct endgame<int> {
void print(int a ={}) {
cout << "Integer a " << a << endl;
}
};
或者,如果您想专注于print
的输入类型,您可以执行以下操作:
template <typename T> struct endgame {
template<typename U> void print(U a = {}) {
cout << "Some unknow type " << a << endl;
}
void print(int a = {}) {
cout << "Integer a " << a << endl;
}
};