Результаты поиска по запросу "smart-pointers"
howardhinnant.github.io/incomplete.html
опытке использоватьauto_ptr с типом, который был объявлен с предварительным объявлением, как это: class A; ... std::auto_ptr<A> a;деструкторA не называется (видимо, потому чтоauto_ptr внутреннеdeletes базовый указатель и деструктор для неполного ...
Я пришел сюда, потому что нашел документацию надстройки слишком страшной.
разница между следующим набором указателей? Когда вы используете каждый указатель в рабочем коде, если вообще? Примеры будут оценены! scoped_ptr shared_ptr weak_ptr intrusive_ptr Вы используете повышение в производственном коде?
Я согласен, дополнительная документация и неоднозначность того, что означает передача необработанного указателя, являются недостатками.
м коде я следую двум правилам, когда дело доходит до intrusive_ptrs: Передача необработанного указателя по значению подразумевает, что необработанный указатель гарантированно будет действительным в течение времени жизни этой функции.Если ...
источник кузница
олжно быть тривиально, но я не могу найти его (если такой класс не существует!) Что такое класс STL (или набор классов) для умных указателей? ОБНОВИТЬ Спасибо за ответы, Должен сказать, я удивлен, что стандартной реализации нет. Я закончил ...
Любое объяснение по поводу голосования?
я есть простой базовый и производный класс, который я хочу, чтобы обаshared_from_this(). Это простое решение: class foo : public enable_shared_from_this<foo> { void foo_do_it() { cout<<"foo::do_it\n"; } public: virtual function<void()> ...
Тем не менее, для временного и легкого использования, сырые указатели хороши.
прочтенияэтот ответ [https://stackoverflow.com/questions/2585247/code-reading-where-can-i-read-great-modern-and-well-documented-c-code/2585397#2585397] похоже, это лучшая практика для использованияумные ...
@ Натан: это имеет значение. Это не просто деструктор. Процедуры выделения памяти зависят от того, удаляете ли вы память с помощью соответствующего метода выделения. Таким образом, new / delete и new [] / delete [] являются совпадающими парами.
мные указатели обрабатывают массивы? Например, void function(void) { std::unique_ptr<int> my_array(new int[5]); }когдаmy_array выходит из области видимости и разрушается, весь ли массив целых чисел повторно заявлен? Только первый элемент массива ...
Или же
м недавно я переключил язык моего проекта на использование C ++ с C. В C я использовал malloc, и после этого я проверял, был ли malloc успешным, но в C ++ я использую «new» для выделения памяти, и я хотел бы знать, как вы обычно проверяет сбой ...
@DeadMG, да. Я не сразу запомнил эти функции, но что-то похожее на них. Что касается исключения, хорошо, просто была идея о том, как обрабатывать различия в типах через промежуточный этап.
+ мы можем сделать это: struct Base { virtual Base* Clone() const { ... } virtual ~Base(){} }; struct Derived : Base { virtual Derived* Clone() const {...} //overrides Base::Clone }; Тем не менее, следующее не будет делать то же самое: struct ...
выполняет одно выделение достаточно большого размера, а затем создает на месте как счетчик, так и объект.
оренном докmake_shared [http://www.boost.org/doc/libs/1_47_0/libs/smart_ptr/make_shared.html], это говорит: Помимо удобства и стиля, такая функция также безопасна для исключения и значительно быстрее, потому что она может использоватьединое ...