gpt4 book ai didi

C++: [VS2010]: warning C4396: 'stdext::hash_value': 友元声明时不能使用内联说明符

转载 作者:太空宇宙 更新时间:2023-11-04 11:57:23 25 4
gpt4 key购买 nike

我正在将我的 VS2005 C++ 代码转换为 VS2010 代码。不幸的是,在 VS2010 中它给出了编译器警告,而在 VS2005 中它编译顺利。 (仅供引用:我已将警告设置为错误)。

请看一下代码片段:

错误在 friend 声明所在的行。

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

请帮我解决这个错误。谢谢。

最佳答案

我通过在 MyKey 的类声明之前添加以下两个前向声明语句来解决问题。

class MyKey;

template<> size_t stdext::hash_value<MyKey>(const MyKey& key);

现在错误/警告消失了。我做得对吗?

关于C++: [VS2010]: warning C4396: 'stdext::hash_value': 友元声明时不能使用内联说明符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15629198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com