这个问题是对Customising std::shared_ptr or boost::shared_ptr to throw an exception on NULL dereference的扩展。
我需要一个类,它的行为类似shared_ptr,但在解引用nullptr时抛出异常。在上面的问题中,建议创建一个包含shared_ptr的包装类,并使该包装类抛出异常。
然而,我也想继续使用make_shared。有没有办法让make_shared与我的(或任何)shared_ptr包装类一起工作?类似于这样的东西:
我需要一个类,它的行为类似shared_ptr,但在解引用nullptr时抛出异常。在上面的问题中,建议创建一个包含shared_ptr的包装类,并使该包装类抛出异常。
然而,我也想继续使用make_shared。有没有办法让make_shared与我的(或任何)shared_ptr包装类一起工作?类似于这样的东西:
checked_shared_ptr<MyClass> csp = make_checked_shared<MyClass>(...);
shared_ptr
继承,并提供构造函数和赋值运算符(用于拷贝和移动),这些构造函数和赋值运算符接受一个shared_ptr&
作为参数。 - Jonathan Potter