Результаты поиска по запросу "shared-ptr"

2 ответа

Я собираюсь оставить этот вопрос открытым, потому что я все еще не совсем счастлив, что делаю это правильно и был бы признателен за некоторый вклад.

рабатываю приложение, в котором мне нужно запускать и останавливать различные исполняемые файлы в зависимости от ввода пользователя. Я хотел бы, чтобы моя «основная» программа работала как обычно, пока выполняются эти исполняемые файлы, то есть ...

2 ответа

, Передача одного указателя определенно быстрее, чем перемещение

н ли общий указатель передаваться по ссылке или по значению в качестве параметра классу, если он будет скопирован в переменную-член? Копирование общего указателя будет увеличивать счетчик ссылок, и я не хочу делать ненужные копии и, ...

2 ответа

@DrewDormann хорошо зарекомендовал себя здесь, acidzombie24. У тебя будут проблемы с нулевыми указателями.

я есть что-то вродеshared_ptr<Type> t(makeSomething(), mem_fun(&Type::deleteMe)) Теперь мне нужно вызвать функцию в стиле C, которая требует указатель наType, Как я могу получить это отshared_ptr?

ТОП публикаций

5 ответов

Вы не ответили на вопрос. И умных указателей не следует избегать.

я есть функция, которая принимаетshared_ptr<MyClass>, В какой-то функции-членаmemfun изMyClassМне нужно пройтиthis к этой функции. Но если я напишу void MyClass:memfun() { func(shared_ptr<MyClass>(this)) }Я предполагаю, что после завершения ...

2 ответа

конструктор псевдонимов shared_ptr

Вопрос о следованииshared_ptr конструктор: template< class Y > shared_ptr( const shared_ptr<Y>& r, T *ptr );Правильно ли это, еслиr был создан с использованием предоставленного пользователем средства удаления, а затем псевдонимовshared_ptr знает ...

1 ответ

 так что вы можете обратиться к нему позже.

прочтения в RAII, просмотраПрезентация Херба Саттера на CppCon2014 [https://www.youtube.com/watch?v=xnqTKD8uD64]и читаяосновные рекомендации [http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rr-sharedptrparam-const] а ...

3 ответа

в то время как вызов сброса создает не новый общий объект, а новое владение - присоединение к новому базовому объекту (через управляющий объект)

ли различия между двумя фрагментами кода ниже? Любой из них предпочтительнее другого? оператор = boost::shared_ptr<Blah> foo; // foo.ptr should be NULL foo = boost::shared_ptr<Blah>(new Blah()); // Involves creation and copy of ...

2 ответа

Это может быть ошибка копирования и вставки, но чтобы охватить все базы, вы пропустили «d» в «shared» для

ла то, что должно сработать, потом то, что не сработает. Почему это не вопрос. Я объявляю два класса: class Base { ... }; class Derived : public Base { ... };Затем у меня есть следующая функция в другом месте: void foo(shared_ptr<Base> ...

2 ответа

C ++ слабая производительность создания

Я читал, что создание или копирование std :: shared_ptr влечет за собой некоторые накладные расходы (атомарный прирост счетчика ссылок и т. Д.). Но как насчет создания из него std :: weak_ptr: Obj * obj = new Obj(); // fast Obj * o = obj; // ...

1 ответ

howardhinnant.github.io/incomplete.html

опытке использоватьauto_ptr с типом, который был объявлен с предварительным объявлением, как это: class A; ... std::auto_ptr<A> a;деструкторA не называется (видимо, потому чтоauto_ptr внутреннеdeletes базовый указатель и деструктор для неполного ...