Описание тега unique-ptr

NoneStd::unique_ptr - это умный указатель, который сохраняет исключительное право собственности на объект через указатель. unique_ptr не подлежит копированию или назначению для копирования, два экземпляра unique_ptr не могут управлять одним и тем же объектом.
2 ответа

Создание unique_ptr непрозрачных данных в C++

Конструкторы ptr работают с простыми данными, но не работают с объектами: #include <string> #include <memory> struct MyClass{}; int main() { std::unique_ptr<int> ptr(new int(5)); std::unique_ptr<std::string> ptr1(new std::str…
26 фев '14 в 17:49
3 ответа

Передача std::unique_ptr в качестве параметра функции

Я получил структуру и функцию, подобную следующей: struct MYOVERLAPPED : public OVERLAPPED { //... }; void func1(std::unique_ptr<MYOVERLAPPED> pBuf) { //... }; Я получаю указатель на MYOVERLAPPED, который я хочу передать функции func1. Проблем…
2 ответа

C++ unique_ptr отдельное объявление и создание экземпляра

Может быть, это очень простой вопрос. Но как программист на Java, я все еще пытаюсь понять, как правильно создавать объекты в C++. Я получил переменную-член в своем классе и не могу создать ее экземпляр в списке экземпляров конструктора класса (пото…
17 дек '15 в 07:53
1 ответ

C++ Как добавить очередь unique_ptr в вектор

Упрощенный код: #include <queue> #include <memory> #include <vector> class Foo { public: Foo() {}; virtual ~Foo() {} }; int main() { std::queue<std::unique_ptr<Foo>> queue; auto element = std::make_unique<Foo>(); …
05 июн '18 в 01:10
2 ответа

Сброс вложенного умного указателя shared_ptr на shared_ptr (или unique_ptr), кажущийся парадоксом

Я знаю, что объект управляется std::shared_ptr не является delete д reset() если это не единственный shared_ptr который управляет этим в тот момент. Я знаю, что когда есть несколько shared_ptr При управлении одним и тем же объектом изменения значени…
05 ноя '14 в 02:12
2 ответа

Немедленно разыменование unique_ptr

Я не очень знаком с современным C++ и хотел бы лучше понять следующий фрагмент: State & m_rootstate; //... auto currstate = std::make_unique<State> (m_rootstate); do_something (*currstate); // currstate is not used anywhere else я вижу uni…
24 сен '18 в 10:33
3 ответа

Удаление того, на что указывает unique_ptr

У меня есть задание на кодирование, и мне нужно освободить всю выделенную память, поэтому я пытаюсь удалить все семафоры, на которые указывает мой unique_ptr. Все unique_ptrs находятся на карте. Фрагменты кода: static map<string, unique_ptr<se…
12 май '14 в 05:37
1 ответ

Является ли пользовательское средство удаления для std::unique_ptr допустимым местом для ручного вызова деструктора?

У меня есть очень базовая реализация отражения, которая включает в себя Type класс, который создает объект для класса, который он описывает. Разобравшись до соответствующих частей, это выглядит так: Type.h: class Plugin; // forward declaration typed…
14 янв '14 в 10:28
4 ответа

Фатальная ошибка C++ C1001: в компиляторе произошла внутренняя ошибка

Я получаю следующую ошибку при компиляции в режиме релиза. 1>d:\users\eyal\projects\code\yalla\core\src\runbox\win32\window.cpp : fatal error C1001: An internal error has occurred in the compiler. 1> (compiler file 'f:\dd\vctools\compiler\utc\…
15 мар '16 в 07:43
1 ответ

Что не так, чтобы сбросить std::unique_ptr в указатель на массив?

Я вижу фрагмент кода, как показано ниже: std::unique_ptr<uint8_t> mCache; mCache.reset(new uint8_t[size]); Кто-то сказал мне, что есть некоторые проблемы с этим кодом. Кто-нибудь может дать мне некоторые детали?
15 авг '18 в 08:20
7 ответов

Скопируйте конструктор для класса с unique_ptr

Как мне реализовать конструктор копирования для класса, который имеет unique_ptr переменная-член? Я рассматриваю только C++11.
16 апр '13 в 06:21
1 ответ

Как асинхронно выполнить метод от unique_ptr до объекта?

Я создал уникальный указатель на объект, подобный этому: std::unique_ptr<MyClass> myObj(new MyClass(arg1, arg2)); И там есть метод, который мне нужно выполнить в параллельном потоке. Я не хочу ждать, пока это закончится. Он будет запускать цик…
18 апр '14 в 23:50
3 ответа

std::unique_ptr с пользовательским удалителем для win32 LocalFree

У меня есть Win32 API CommandLineToArgvW который возвращает LPWSTR* и предупреждает меня, что CommandLineToArgvW выделяет блок непрерывной памяти для указателей на строки аргументов и для самих строк аргументов; вызывающее приложение должно освободи…
27 мар '12 в 15:51
5 ответов

Реализация контейнеров с использованием умных указателей

Итак, все знают, что необработанных указателей следует избегать, как чумы, и предпочитать умные указатели, но применим ли этот совет при реализации контейнера? Вот что я пытаюсь сделать: template<typename T> class AVLTreeNode { public: T data;…
29 мар '11 в 10:36
1 ответ

std::unique_ptr с использованием пользовательского удалителя с несколькими аргументами

Интересно, можно ли указать пользовательское средство удаления для std::unique_ptr с более чем одним аргументом (стандартная подпись средства удаления). Я знаю, что с std::shared_ptr существует обходной путь с std:: bind, который делает это возможны…
26 дек '15 в 10:45
1 ответ

Передача пользовательского удалителя в std::unique_ptr с помощью объекта std::function

У меня есть следующий рабочий код для инициализации std::unique_ptr с пользовательским удалителем: class Dataset { ... private: class CustomGDALDatasetDeleter { public: void operator()(GDALDatasetH res) const { ::GDALClose(res); } }; using ResourceT…
06 июл '14 в 22:30
2 ответа

С ++ прохождение ptrs

У меня все еще много проблем с захватом указателей, я пытался их не использовать, но я не уверен, как лучше всего выполнить следующее. У меня два класса Point а также RayЯ также уверен, что где-то уже есть реализация класса точек, который я должен и…
25 ноя '14 в 19:57
2 ответа

Могу ли я абстрагироваться от конкретных деталей о шаблонных классах?

Я работаю над созданием фабричной библиотеки (похожей на https://github.com/google/guice которая доступна для Java) в C++11, чтобы ознакомиться с программированием шаблонов, а также создать полезный инструмент для уменьшения зависимости, Идея заключ…
04 апр '15 в 18:45
2 ответа

C++ unique_ptr вектор

У меня есть следующая строка кода SystemFactory::system_ptr system = _Factory->createSystem(systemType); _Systems.push_back(std::move(system)); Проблема, которую я имею, состоит в том, что я не могу просто вернуть систему, так как она обнулит ее …
23 фев '17 в 15:12
4 ответа

C++11 контейнер unique_ptr для заранее объявленного класса

g++ -std=c++11 не компилирует класс, который содержит контейнер, содержащий уникальные указатели, которые указывают на объявленный вперед класс. Вопросы: Зачем? Есть ли разумное решение? Пример кода: #include <vector> #include <memory> /…
06 янв '16 в 07:35