Я новичок в C++ 11, поэтому, пожалуйста, будьте милы.Как заменить c-указатель на shared_ptr?
Не могли бы вы показать мне простой пример того, как shared_ptr может заменить стандартный указатель? Я также ценю объяснение, если в этом случае это не имеет смысла.
например. Не могли бы вы преобразовать этот код?
std::vector <CVariant*>liste;
liste.push_back(new CVariant((unsigned int) 24, Parameter1", TYPE_UINT));
std::cout << liste.at(0)->get<int>() <<"\n";
delete liste.at(0);
->
std::vector < std::shared_ptr<CVariant> >liste;
???
Да, который работает. Вы также можете напрямую использовать конструктор shared_ptr: 'liste.push_back (std :: shared_ptr (новый CVariant (аргументы ...)))' Посмотрите: http://www.cplusplus.com/справочник/память/shared_ptr/shared_ptr / –