如果你的类型很长,在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
为该类型创建别名,但我正在寻找一个更好的解决方案,编译器可以自动推断出类型。
答案 0 :(得分:11)
return nullptr;
可能比return {};
答案 1 :(得分:6)
return {};
此值初始化返回类型,在智能指针的情况下将其初始化为null。