创建空shared_ptr的最简单方法是什么?

时间:2015-02-14 04:06:53

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

如果你的类型很长,在shared_ptr中,什么是返回空指针等效的最简单方法?在C ++ 03中,我正在做以下几点,但我想知道C ++ 11是否引入了更好的替代方案?

std::shared_ptr<
    std::vector<std::pair<int, std::map<std::string, std::string>>>
> getComplicatedType()
{
    // Do some checks, can't create type, so return an empty shared_ptr
    return std::shared_ptr<
        std::vector<std::pair<int, std::map<std::string, std::string>>>
    >();
}

我意识到您可以使用typedef为该类型创建别名,但我正在寻找一个更好的解决方案,编译器可以自动推断出类型。

2 个答案:

答案 0 :(得分:11)

return nullptr;

可能比return {};

更清晰一点

答案 1 :(得分:6)

return {};

此值初始化返回类型,在智能指针的情况下将其初始化为null。