0
ответов

shared_ptr абстрактного базового класса в качестве члена

У меня есть абстрактный базовый класс, назовем его Message и производный класс с именем StatusMessage. Класс оболочки должен содержать shared_ptr для любого из производных классов сообщений. Сообщение назначается ...
вопрос задан: 18 March 2019 16:52
0
ответов

Проблема с сериализацией Cereal shared_ptr

Я столкнулся с проблемой при сериализации общих указателей с Cereal. У меня есть следующий класс struture: class Source {std :: string name; шаблон < class Archive > void serialize (Архив & ...
вопрос задан: 5 March 2019 13:53
0
ответов

C ++ - Как использовать shared_ptr для замены T **

Я пытаюсь использовать shared_ptr для замены указателя в стиле C, чтобы избежать утечки памяти. T ** list_of_T; Это мой старый код. И я пытаюсь использовать shared_ptr следующим образом: vector < shared_ptr < T > > ...
вопрос задан: 3 March 2019 04:40
0
ответов

c ++ 0x std :: shared_ptr vs. boost :: shared_ptr

У меня есть код на C ++, который активно использует shared_ptr и STL. В общем заголовке написано #include . с использованием boost :: shared_ptr; // для shared_ptr используя пространство имен std; // для STL I ...
вопрос задан: 12 June 2018 13:31
0
ответов

Действительно ли make_shared более эффективен, чем новый?

Я экспериментировал с shared_ptr и make_shared из C ++ 11 и запрограммировал небольшой игрушечный пример, чтобы увидеть, что на самом деле происходит при вызове make_shared. В качестве инфраструктуры я использовал llvm / clang ...
вопрос задан: 27 October 2017 07:32
0
ответов

ложное совместное использование в boost::detail::spinlock_pool?

Я наткнулся на этот ТАК вопрос и перечитал его в конце концов заставил меня взглянуть на boost::detail::spinlock_pool Цель boost::detail::spinlock_pool - уменьшить потенциальную конкуренцию за ...
вопрос задан: 23 May 2017 12:31
0
ответов

Зачем разрешать shared_ptr ?

В этом ответе приводится ссылка N4082, которая показывает, что предстоящие изменения в std :: shared_ptr допускают варианты как T [], так и T [N]: в отличие от частичной специализации unique_ptr для массивов, оба shared_ptr <...
вопрос задан: 23 May 2017 12:13
0
ответов

Что? Лучшая стратегия для определения типов общих указателей?

У меня быстрый вопрос относительно использования определений типов для длинных шаблонов. Суть: я обнаружил, что попал в какую-то проблему - похоже, нет хорошего места для размещения typedef, кроме local ...
вопрос задан: 23 May 2017 12:07
0
ответов

Ошибки в std :: make_shared () при попытке сделать shared_ptr?

(Используя Visual Studio 2010) Я пытаюсь создать shared_ptr существующего класса в моем проект (класс был написан за десять лет до того, как существовал std :: shared_ptr). Этот класс принимает неконстантный указатель на ...
вопрос задан: 23 May 2017 12:06
0
ответов

Как удалить (ненавязчивые) интеллектуальные указатели из кеша, когда больше нет ссылок?

Из-за моей репутации новичка я не могу отвечать на эту тему, в частности принятый ответ: Я никогда не использовал ускорение: : навязчивые интеллектуальные указатели, но если бы вы использовали интеллектуальные указатели shared_ptr, вы ...
вопрос задан: 23 May 2017 12:01
0
ответов

BOOST_FOREACH Итерация по boost :: shared_ptr

Я делаю что-то похожее на этот элемент. Правильное использование BOOST_FOREACH? Однако мой возвращенный список заключен в boost :: shared_ptr. Если я не назначу список переменной перед BOOST_FOREACH ...
вопрос задан: 23 May 2017 11:55
0
ответов

Преобразование общего указателя в производный класс с дополнительной функциональностью - это безопасно?

Рассмотрим следующую схему: class Base {/ * ... * /}; class Derived: public Base { public: void AdditionalFunctionality (int i) {/ * ... * /} }; typedef std :: shared_ptr pBase; ...
вопрос задан: 23 May 2017 11:54
0
ответов

Правильное использование shared_ptr для исключения освобождения через границы DLL

Я читаю «Использование shared_ptr в dll-интерфейсах». В этом посте phlipsy в конце своего ответа предложил способ не передавать конкретный объект реализации через границы DLL. По сути, идея ...
вопрос задан: 23 May 2017 11:53
0
ответов

std ::общий _указатель этого

В настоящее время я пытаюсь научиться использовать умные указатели. Однако, проводя некоторые эксперименты, я обнаружил следующую ситуацию, для которой не смог найти удовлетворительного решения :Представьте, что у вас есть...
вопрос задан: 23 May 2017 11:47
0
ответов

boost :: shared_ptr и присвоение производных классов

Предположим, что DerivedClass является производным от BaseClass Будет ли работать следующее? boost :: shared_ptr a (новый BaseClass ()); boost :: shared_ptr b (новый DerivedClass ()); а = б; ...
вопрос задан: 23 May 2017 11:45
0
ответов

Ошибка C ++ 0x : перегрузка функции с аргументом std :: shared_ptr в аргумент const неоднозначна

Предположим, у меня есть два несвязанных класса A и B. У меня также есть класс Bla, который использует boost :: shared_ptr, например: class Bla { public: void foo (boost :: shared_ptr ); void foo (boost :: ...
вопрос задан: 23 May 2017 10:34
0
ответов

Как передать boost :: shared_ptr в качестве указателя на функцию потока Windows?

Как передать boost :: shared_ptr в качестве указателя на функцию потока Windows? предположим следующий код: test :: start () {.... _beginthreadex (NULL, 0, & test :: threadRun, & shared_from_this () ...
вопрос задан: 23 May 2017 10:24
0
ответов

Различия между unique_ptr и shared_ptr [duplicate]

Возможные дубликаты: объяснение интеллектуальных указателей pimpl: shared_ptr или unique_ptr (boost) Может ли кто-нибудь объяснить различия между shared_ptr и unique_ptr?
вопрос задан: 23 May 2017 02:02
0
ответов

Зачем мне std :: переместить std :: shared_ptr?

Я просматривал исходный код Clang и нашел этот фрагмент: void CompilerInstance :: setInvocation (std :: shared_ptr Value) {Invocation = std :: move (...
вопрос задан: 7 February 2017 13:03
0
ответов

различия shared_ptr и weak_ptr

Я читаю книгу Скотта Мейерса «Эффективный C ++». Было упомянуто, что есть tr1 :: shared_ptr и tr1 :: weak_ptr действуют как встроенные указатели, но они отслеживают, сколько tr1 :: shared_ptr указывают на ...
вопрос задан: 25 January 2017 17:59
0
ответов

Когда полезен стандартный ::слабый _ptr?

Я начал изучать умные указатели C++11 и не вижу никакого полезного применения std ::weak _ptr. Может ли кто-нибудь сказать мне, когда std ::weak _ptr полезен/необходим?
вопрос задан: 14 June 2016 12:06
0
ответов

Должен ли я использовать shared_ptr или unique_ptr

Я делал некоторые объекты, используя идиому pimpl, но я не уверен, использовать ли std :: shared_ptr или std :: unique_ptr. Я понимаю, что std :: unique_ptr более эффективен, но это не так уж и много ...
вопрос задан: 29 May 2016 16:01
0
ответов

Создайте boost :: shared_ptr для существующей переменной

У меня есть существующая переменная, например int a = 3; Как я могу теперь создать boost :: shared_ptr для a? Например: boost :: shared_ptr a_ptr = & a; // это не работает
вопрос задан: 4 April 2016 20:31
0
ответов

boost Shared_pointer NULL

Я использую reset () как значение по умолчанию для моего shared_pointer (эквивалент NULL). Но как мне проверить, равен ли shared_pointer NULL? Вернет ли это правильное значение? boost :: shared_ptr ...
вопрос задан: 31 March 2016 20:29
0
ответов

return vector или shared_ptr >?

в функции, какое «return» было бы более подходящим? A. vector ? B. shared_ptr <вектор >? Другими словами, какая копия менее тяжелая, что бы вы сделали и почему?
вопрос задан: 28 January 2016 17:45
0
ответов

Почему два необработанных указателя на управляемый объект необходимы в реализации std :: shared_ptr?

Вот цитата из секции примечаний к реализации cppreference std :: shared_ptr, в которой упоминается, что есть два разных указателя (как показано жирным шрифтом): тот, который может быть возвращен get (), и ...
вопрос задан: 3 December 2015 01:55
0
ответов

Как я могу вызвать частный деструктор из shared_ptr?

У меня есть класс resource_manager, который внутренне поддерживает std :: vector >. resource_manager - это дружественный класс ресурса. Я хочу, чтобы ресурсы создавались только / ...
вопрос задан: 26 October 2015 14:11
0
ответов

Как мне взять один элемент из библиотеки ускорения (например, shared_pointer)?

Я экспериментировал с некоторыми компонентами Boost, и единственным, в котором я вижу прямую потребность в проекте Я работаю над boost :: shared_ptr. Было бы сложно просто включить необходимые ...
вопрос задан: 22 August 2015 18:45
0
ответов

Как интеллектуальные указатели выбирают между удалением и удалением []?

Примите во внимание: удалить новый std :: string [2]; удалить [] новый std :: string; Всем известно, что первое - это ошибка. Если бы второй не был ошибкой, нам не понадобились бы два разных оператора. Теперь рассмотрим: std ...
вопрос задан: 19 August 2015 19:30
0
ответов

Освободить ресурс при финализации boost :: shared_ptr

Я действительно получаю shared_ptr из вызова библиотеки и передаю его и некоторые ресурс обратно в библиотеку. Ресурс может быть удален только тогда, когда shared_ptr удаляет свой указатель: std :: ofstream * out = new ...
вопрос задан: 9 July 2015 15:12