【发布时间】:2013-05-04 18:21:32
【问题描述】:
最近在写代码,发现如下代码:
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( );
所以我的问题是,为什么CComBSTR 的 API 设计允许这样的比较?只是为了更能容忍错误?
【问题讨论】:
-
BSTR 是指针类型。指针可以为 NULL。
-
@HansPassant 有道理。谢谢!
标签: c++ com smart-pointers bstr