Если у вас есть довольно длинный тип, в shared_ptr
, то какой самый простой способ вернуть эквивалент нулевого указателя? В C++ 03 я делал следующее, но мне интересно, внесли ли C++ 11 какие-то лучшие альтернативы?Самый простой способ создать пустой shared_ptr?
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
создать псевдоним для типа, но я ищу для более хорошего решения, где компилятор может вывести тип автоматически.
Это выглядит как очень хорошее решение для общего случая. – Malvineous
Для типов классов, для которых требуется неявный по умолчанию ctor. –