Ale*_*Lee 3 c++ shared-ptr make-shared c++11
我最近正在处理 shared_ptr 的问题。我很好奇如果 make_shared 失败,它会引发异常吗?是否有任何一种情况 make_shared 返回 nullptr 但没有任何例外?
Nut*_*ker 6
从文档:
std::make_shared ... 可能抛出 std::bad_alloc 或任何由 T 的构造函数抛出的异常。
std::make_shared ...
std::make_shared
可能抛出 std::bad_alloc 或任何由 T 的构造函数抛出的异常。
因此,如果您从类的构造函数中抛出异常,那么std::make_shared它也会抛出。除了从构造函数std::make_shared抛出的std::bad_alloc异常之外,还可以自己抛出异常。
std::bad_alloc
因此,您无需检查结果是否std::make_shared为nullptr。只要确保捕获异常并正确处理它。
nullptr
归档时间:
6 年,3 月 前
查看次数:
614 次
最近记录: