最近、私はコードに取り組んでいて、次のコードを見つけました:
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
このような比較が可能になるのはなぜですか? エラーにもっと寛容になるためですか?