void f(boost::shared_ptr<int> ptr)
{
if (ptr) // should we check?
// do something
}
void f2(int *p)
{
if (p) // good practice to check before using it
// do something
}
问题:我们应该在使用
shared_ptr
之前对其进行验证吗? 最佳答案
否。如果必须遵守该功能契约(Contract),那么引起注意调用者存在错误的事实的最快方法是崩溃。尽早失败。