想判断一个shared_ptr是否为空,去http://en.cppreference.com/w/cpp/memory/shared_ptr链接找了接口函数,未发现接口判断是否为空。
最后发现很简单,可以直接用if判断来实现。经@egmkang指出是重载了operator bool。
std::shared_ptr<cv::Mat> pMat(new cv::Mat);
if (!pMat)
{
std::cout << "error" << std::endl;
}
else
{
std::cout << "correct" << std::endl;
}
if (!pMat)
{
std::cout << "error" << std::endl;
}
else
{
std::cout << "correct" << std::endl;
}