我有一个使用在条件检查中的typedef shared_ptr<>。
它是这样定义的:
typedef std::shared_ptr<T> typeTPtr;
然后我将它传递给一个带有bool参数的函数:
void Foo(bool);
当我尝试执行:
typeTPtr ptrT = ...
Foo(ptrT);
我遇到了一个错误,错误信息如下:
无法将参数从 T 转换为 bool
我知道 std::shared_ptr 已经显式定义了 bool 运算符。为什么编译器没有将 shared_ptr 转换成 bool 呢?我正在使用 Visual C++ 2017。
谢谢。