最近,我正在编写代码并发现以下代码:
CComBSTR userName;
SUCCEED(getUserName(userName));
if(userName == NULL) ...
最后一行提醒我,因为我正在比较一个NULL
不直观的对象。但是在MSDN上看了一眼,是完全支持的:
bool operator ==( const CComBSTR& bstrSrc ) const throw( );
bool operator ==( LPCOLESTR pszSrc ) const;
bool operator ==( LPCSTR pszSrc ) const;
bool operator ==( int nNull ) const throw( );
所以我的问题是,为什么 API 设计CComBSTR
允许这样的比较?只是为了更能容忍错误?