Вопросы по теме 'unique-ptr'

Передача владения указателем сокета с помощью tcp::acceptor::async_accept
Недавно я начал использовать Boost.Asio в проекте и хотел бы знать, знает ли кто-нибудь чистое решение для передачи права собственности на вновь созданный сокет на tcp::acceptor::async_accept, что, в свою очередь, передаст это право собственности на...
1216 просмотров
schedule 06.03.2024

Передача unique_ptr функциям
Я пытаюсь «модернизировать» какой-то существующий код. У меня есть класс, который в настоящее время имеет переменную-член «Device * device_». Он использует new для создания экземпляра в некотором коде инициализации и имеет "delete device_" в...
33870 просмотров
schedule 22.03.2022

Другое поведение для unique_ptr с перемещением?
У меня есть следующий код std::vector<std::unique_ptr<int>> v; std::unique_ptr<int> a(new int(0)); std::unique_ptr<int>& b = a; v.insert(v.begin(), std::move(b)); //ok Однако, если я добавлю const в третью...
136 просмотров
schedule 17.03.2024

Что такое замена unique_ptr для Visual Studio 2008, без 3-х библиотек (например, boost)
Есть ли что-то вроде unique_ptr ‹> в Visual Studio 2008? Заголовок только для Visual Studio тоже подойдет. Мне нужна эта функция, но я не хочу использовать стороннюю библиотеку. Поскольку я пишу образец / обучающий код. Если нет, для...
1721 просмотров
schedule 23.04.2022

Указатели функций, которые возвращают C++11 unique_ptrs родительских классов
Я пытаюсь создать указатели функций для функций, которые возвращают unique_ptr экземпляров. Каждая функция должна возвращать значение как можно более определенного типа, чтобы быть полезной для многих вызывающих объектов (в моем реальном коде...
1345 просмотров
schedule 25.06.2023

Предоставление (пустого) определяемого пользователем деструктора вызывает ошибку компиляции
Код, который отлично компилируется (в GCC 4.7.2), когда у меня нет определяемого пользователем деструктора, выдает ошибки даже при наличии пустого определяемого пользователем деструктора: #include <memory> class Test {...
1157 просмотров

Умный способ создания члена класса std::vector‹std::unique_ptr‹AClass› ›
Этот вопрос сочетает в себе unique_ptr как класс семантика члена и перемещения не компилируется с помощью clang и C++ std::vector в конструкторе . Моя цель - построить обертку struct V_wrapper{...
2147 просмотров

Как использовать unique_ptr с данными, выделенными в библиотеке c?
Я на С++ и пишу оболочку для библиотеки c. Функция библиотеки c, с которой я работаю, принимает тип «LDAPMessage **» в качестве параметра, где она будет выделять память для вас внутри функции. Обычное использование выглядит так: LDAPMessage *...
598 просмотров

Почему я не могу удалить unique_ptr из мультисета, пока компилятор с удовольствием делает это с вектором?
Простой код ниже не будет компилироваться с помощью Clang на Mac. void foo(std::vector<std::unique_ptr<int> > &fromVector, std::multiset<std::unique_ptr<int> > &fromMultiset) {...
65 просмотров
schedule 18.04.2023

Некопируемый удалитель в std :: unique_ptr
Я только что искал решения другого вопроса ( этот ). Кажется, что для экземпляра unique_ptr должно быть возможно создать собственный удалитель, который может разблокировать мьютекс. Например, #include <mutex> #include <memory>...
868 просмотров
schedule 06.05.2023

Умные указатели с SDL
В моей игре я должен использовать необработанный указатель для создания SDL_Window , SDL_Renderer , SDL_Texture и т. д., поскольку у них есть определенные функции удаления SDL_DestroyTexture(texture); или мне следует добавить...
4074 просмотров
schedule 07.04.2024

Странное поведение с std::unique_ptr и std::ostringstream (SIGSEGV)
В настоящее время я пытаюсь обернуть std::ostringstream в std::unique_ptr. Мой текущий код компилируется, но во время выполнения я получаю ошибку сегментации. Когда я не оборачиваю его - используя старый указатель в стиле c, он работает нормально....
808 просмотров

Умные указатели для представления графа (соседи вершин) в C++11
Мне было интересно, как правильно использовать интеллектуальные указатели С++ 11 для графических представлений. Предположим, у вас есть структура графа, которая содержит вектор всех его вершин. Кроме того, у вас есть структура/класс вершины. Эта...
2115 просмотров

C++: прямое объявление класса с помощью удаления для уникального указателя, который можно повторить
В C++ можно использовать предварительное объявление, чтобы разрешить указатели на неполный тип. class A; A *p; Однако в некоторых случаях я хочу вместо этого объявить уникальный указатель, поэтому я использую class A; class A_Deleter {...
117 просмотров

Почему unique_ptr можно использовать со стандартными контейнерами, например с векторами‹›?
Я понимаю, что auto_ptr нельзя использовать с векторами, так как auto_ptr не соответствует требованию быть копируемым. Поскольку копируемый auto_ptr изменяется, копирование не приводит к получению двух точных копий, тем самым нарушая идиому...
223 просмотров
schedule 30.03.2024

Неполный тип идиомы C ++ Pimpl с использованием std :: unique_ptr
Прошу прощения за большой объем кода, необходимый для демонстрации проблемы. У меня проблема с использованием идиомы pimpl с std :: unique_ptr. В частности, проблема возникает, когда один класс (который имеет реализацию с расширением) используется в...
1609 просмотров

Выровненный динамический массив и интеллектуальный указатель
Мне часто нужно выровнять начало динамического массива по границе 16, 32 или 64 байта для векторизации, например, для SSE, AVX, AVX-512. Я ищу прозрачный и безопасный способ использовать это в сочетании с умными указателями, в частности...
1857 просмотров
schedule 29.09.2022

передача unique_ptr базового класса и использование его в качестве производного класса
У меня следующая ситуация: basestuff — это общая библиотека, которая реализует мою базовую модель... derivedstuff отличается для каждой реализации и представляет объекты приложения. utilitystuff — это общая библиотека с служебными функциями....
88 просмотров
schedule 14.04.2024

Как назначить unique_ptr с помощью настраиваемого средства удаления
Я пытаюсь передать указатель на функцию, которая затем устанавливает unique_ptr внутри структуры на переданный указатель. Однако я получаю следующую ошибку компиляции в последней строке функции. ошибка C2280: 'std :: unique_ptr ‹ALLEGRO_BITMAP,...
910 просмотров
schedule 19.07.2023

Копирование вектора структур, содержащих unique_ptrs
Я работаю над простой игрой, используя C++ и Allegro. Я столкнулся с ошибкой выполнения Access violation в отношении vector из structs , которые содержат от unique_ptrs до ALLEGRO_BITMAPs . Вот мое объявление структуры. struct Skin {...
291 просмотров
schedule 04.05.2024