template<> inline bool IsNull(const Date& d) { return d.year == -32768; }
显示错误:
error C2912: 显式专用化;“bool Upp::IsNull(const Upp::Date &)”不是函数模板的专用化
不知道什么情况啊,哪位大神帮帮忙~~~
6 个解决方案
#1
好像说的是 IsNull 不是函数模板。
#2
有定义过:
template <class T> bool IsNull(const T& x) { return x.IsNullInstance(); }
就是这个定义在另一个头文件里面,不过include这个头文件也不行啊~~
template <class T> bool IsNull(const T& x) { return x.IsNullInstance(); }
就是这个定义在另一个头文件里面,不过include这个头文件也不行啊~~
#3
“bool Upp::IsNull(const Upp::Date &)是类Upp的成员函数?
#4
template<class T> bool IsNull(const T &x) { return x.IsNullInstance(); }
的“显式专用化”按格式应当这样写:
template<> bool IsNull<Date>(const Date &d) { return d.year == -32768; }
但建议的做法是直接“重载”:
inline bool IsNull(const Date &d) { return d.year == -32768; }
#5
直接重载就好了,不需要特化。
/*template<>*/ inline bool IsNull(const Date& d) { return d.year == -32768; }
#6
直接重载没错了,感谢各位好心人~~~就是不太明白原因。。。
#1
好像说的是 IsNull 不是函数模板。
#2
有定义过:
template <class T> bool IsNull(const T& x) { return x.IsNullInstance(); }
就是这个定义在另一个头文件里面,不过include这个头文件也不行啊~~
template <class T> bool IsNull(const T& x) { return x.IsNullInstance(); }
就是这个定义在另一个头文件里面,不过include这个头文件也不行啊~~
#3
“bool Upp::IsNull(const Upp::Date &)是类Upp的成员函数?
#4
template<class T> bool IsNull(const T &x) { return x.IsNullInstance(); }
的“显式专用化”按格式应当这样写:
template<> bool IsNull<Date>(const Date &d) { return d.year == -32768; }
但建议的做法是直接“重载”:
inline bool IsNull(const Date &d) { return d.year == -32768; }
#5
直接重载就好了,不需要特化。
/*template<>*/ inline bool IsNull(const Date& d) { return d.year == -32768; }
#6
直接重载没错了,感谢各位好心人~~~就是不太明白原因。。。