创建空 shared_ptr 的最简单方法是什么?
What's the easiest way to create an empty shared_ptr?
如果您有一个很长的类型,在 shared_ptr
中,什么是 return 等效于空指针的最简单方法?在 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
为类型创建别名,但我正在寻找一个更好的解决方案,编译器可以自动推断类型。
return {};
此值初始化 return 类型,在智能指针的情况下将其初始化为 null。
return nullptr;
可能比return {};
更清楚一点
如果您有一个很长的类型,在 shared_ptr
中,什么是 return 等效于空指针的最简单方法?在 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
为类型创建别名,但我正在寻找一个更好的解决方案,编译器可以自动推断类型。
return {};
此值初始化 return 类型,在智能指针的情况下将其初始化为 null。
return nullptr;
可能比return {};