我正在将我的 VS2005 C++ 代码转换为 VS2010 代码。不幸的是,在 VS2010 中它给出了编译器警告,而在 VS2005 中它编译顺利。(仅供参考:我已将警告设置为错误)。
请看一下代码片段:
错误出现在朋友声明所在的行。
class __declspec(dllexport) MyKey
{
friend size_t stdext::hash_value<MyKey>(const MyKey& key); // compiler warning at this line (pls see below for the actual compiler warning)
ubit32 m_uKey1;
};
template<> inline size_t stdext::hash_value<MyKey>(const MyKey& key)
{
return key.m_uKey1;
}
这是编译器警告,如下所示:
warning C4396: 'stdext::hash_value' : the inline specifier cannot be used when a friend declaration refers to a specialization of a function template
请帮我解决这个错误。谢谢。