【发布时间】:2011-09-28 07:59:16
【问题描述】:
我正在切换到 GCC 4.6.1,它开始抱怨在 GCC 4.4 和 MSVC10 上运行良好的代码。从这样的函数返回时,它似乎不想在shared_ptr 和bool 之间进行转换:
class Class { shared_ptr<Somewhere> pointer_; };
bool Class::Function () const
{
return pointer_;
}
使用
return static_cast<bool> (pointer_);
一切正常。到底他妈发生了什么?这是--std=cpp0x。
【问题讨论】:
-
你为什么要这样做?
-
检查指针是否已设置。