c++ - make_shared 是否有可能没有任何异常但返回 nullptr?

标签 c++ c++11 shared-ptr make-shared

我最近正在处理 shared_ptr 的问题。我很好奇如果 make_shared 失败了,它会引发异常吗?是否存在 make_shared 返回 nullptr 但没有任何异常的情况?

最佳答案

来自docs :

std::make_shared ...

May throw std::bad_alloc or any exception thrown by the constructor of T.

因此,如果您从类的构造函数中抛出异常,那么 std::make_shared 也会抛出它。除了从构造函数抛出的异常之外,std::make_shared 可以自己抛出 std::bad_alloc 异常。

因此,您无需检查std::make_shared 的结果是否为nullptr。一定要捕获异常并妥善处理它。

关于c++ - make_shared 是否有可能没有任何异常但返回 nullptr?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61095800/

相关文章:

c++ - 无法通过复制到匿名函数来传递数组地址

c++ - C++ 应用程序的框架

c++ - Boost::Bind noncopyable error with shared_ptr <tcp::socket>

c++ - 如何从 Gdiplus::Bitmap 快速复制数据

C++:为程序使用调试变量时的作用域问题

templates - 通过模板别名显式实例化类

c++ - 在 C++ 高效存储上,刷新文件策略

c++ - 如何在不使用if语句的情况下找到数组中的最大值和最小值?

C++共享指针问题

c++ - 如何保持常量正确性和 RAII?