0
我移植一些基於ATL頭爲MinGW和碰到的問題與此代碼曖昧過載「操作!=」問題
CComBSTR bstrHelpFile;
hr = pTypeLib->GetDocumentation(-1, NULL, NULL, NULL, &bstrHelpFile);
if (SUCCEEDED(hr) && bstrHelpFile != NULL)
{
..
}
的錯誤消息,我得到的是這種
C:\mingw64\opt\atlmfc\include/atlbase.h:5882:37: error: ambiguous overload for 'operator!=' (operand types are 'ATL::CComBSTR' and 'long long int')
if (SUCCEEDED(hr) && bstrHelpFile != NULL)
^
C:\mingw64\opt\atlmfc\include/atlbase.h:5882:37: note: candidates are:
C:\mingw64\opt\atlmfc\include/atlbase.h:5882:37: note: operator!=(BSTR {aka wchar_t*}, BSTR {aka wchar_t*}) <built-in>
這是來自ATL標題的代碼atlbase.h
有關如何解決此問題的任何建議?
刪除'!= NULL'? – chris 2015-03-18 23:52:39
是的,它做到了。不知道爲什麼這會成爲一個問題? – MistyD 2015-03-18 23:53:31
'NULL'不是一個非常好的空指針。這就是爲什麼我們有'nullptr'。 – chris 2015-03-18 23:54:01