【发布时间】:2021-04-22 13:35:07
【问题描述】:
以下内容无法编译:
#include <memory>
class A;
bool f() {
std::shared_ptr<A> a;
return a;
}
int main()
{
f();
return 0;
}
失败:
Compilation failed due to following error(s).main.cpp: In function ‘bool f()’:
main.cpp:13:12: error: cannot convert ‘std::shared_ptr’ to ‘bool’ in return
return a;
标准(我推测)不允许在这里进行隐式转换的原因是什么?
【问题讨论】:
-
可能是安全布尔问题:en.cppreference.com/w/cpp/language/…
标签: c++ boolean shared-ptr implicit-conversion return-type