静态模板成员函数的显式实例化模板实例不停地进行故障与消息error C2785: 'at_Intermediate CUtil::convert_variant(const VARIANT &)' and '<Unknown>' have different return types
与VARIANT返回类型
编译当我做非静态成员函数对应的类,编译器会喜欢我。
// utility class - static methods
struct CUtil {
template< typename at_Intermediate > static at_Intermediate convert_variant(const VARIANT &v) ;
template<> static VARIANT convert_variant<VARIANT >(const VARIANT &v) { return v; } //
template<> static double convert_variant<double >(const VARIANT &v) { return v.dblVal; }
template<> static long convert_variant<long >(const VARIANT &v) { return v.lVal ; }
template<> static BSTR convert_variant<BSTR >(const VARIANT &v) { return v.bstrVal; }
};
这是一个组合的问题:
为什么编译器抱怨函数“未知”,而这显然是知道的?
什么触发了这个消息 - 当函数成为全局或非静态时,它会消失。
编辑:
乔什一些有用的提示后:这是不允许的类声明中明确实例模板的功能呢?
点? – xtofl 2009-01-08 20:04:00
尽管测试是一种POD类型。 – Eclipse 2009-01-08 20:05:30