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

Использование std::unique_ptr со стандартными контейнерами
Я искал способ сделать безопасные векторы и карты динамических указателей, когда понял, что С++ 11 добавляет unique_ptr s. Я изучал, как их использовать в Google, но не смог найти подробностей. Мне нужно знать следующее: Что именно отличается...
5818 просмотров
schedule 28.10.2023

pimpl: избегать указателя на указатель с помощью pimpl
В этом вопросе я спросил "pimpl: shared_ptr или unique_ptr" . убежден, что правильным использованием идиомы pimpl является использование unique_ptr , а не shared_ptr . Он должен действовать на пользователя так, как будто указателя нет вообще,...
955 просмотров
schedule 10.05.2022

Перебор контейнера unique_ptr
Как получить доступ к элементам unique_ptr контейнера (через итератор), не лишая контейнер права собственности? Когда кто-то получает итератор к элементу в контейнере, остается ли право собственности на элемент контейнером? Как насчет того, чтобы...
30442 просмотров
schedule 05.06.2023

Как работает пользовательское средство удаления std::unique_ptr?
Согласно N3290, std::unique_ptr принимает аргумент удаления в своем конструкторе. Однако я не могу заставить это работать с Visual C++ 10.0 или MinGW g++ 4.4.1 в Windows или с g++ 4.6.1 в Ubuntu. Поэтому я боюсь, что мое понимание этого...
40870 просмотров
schedule 21.07.2022

std::unique_ptr вставка потока
Я включил unique_ptr в gcc 4.4.6, используя параметр -std=c++0x. Похоже, он работает довольно хорошо, и это именно то, что мне было нужно — указатель области действия с пользовательским средством удаления. Однако я заметил проблему. typedef...
528 просмотров
schedule 29.04.2023

Инициализация std::unique_ptr путем передачи адреса указателя
Я создаю класс, который взаимодействует с некоторым кодом Windows API, теперь один из указателей, который мне нужно инициализировать, выполняется путем вызова собственной функции, которая его инициализирует. Мои указатели имеют тип std::unique_ptr...
41777 просмотров
schedule 09.06.2024

Как мне назначить boost::interprocess::unique_ptr, возвращенный из фабричной функции, возможно, с использованием boost::move, в С++ 03
Я пытаюсь создать фабричную функцию, которая будет возвращать boost::interprocess::unique_ptr. Вот пример: #include <boost/interprocess/smart_ptr/unique_ptr.hpp> using namespace boost::interprocess; class my_class { public: my_class()...
1770 просмотров
schedule 30.01.2023

Право собственности на мои новые Unique_ptr?
В соответствии с предложением на собеседовании, которое я недавно провел, мне посоветовали изучить функциональность unique_ptr C++ 11 как средство автоматической сборки мусора. Поэтому я использую более старый проект и заменяю необработанные...
190 просмотров

Может ли unique_ptr принимать значение nullptr?
Является ли этот фрагмент кода действительным? : unique_ptr<A> p(new A()); p = nullptr; То есть могу ли я присвоить nullptr unique_ptr ? или не получится? Я попробовал это с компилятором g++ , и это сработало, но как насчет...
33535 просмотров
schedule 13.08.2023

Использование умных указателей для членов класса
У меня проблемы с пониманием использования интеллектуальных указателей в качестве членов класса в C ++ 11. Я много читал об интеллектуальных указателях и думаю, что понимаю, как работают unique_ptr и _2 _ / _ 3_. Чего я не понимаю, так это...
95173 просмотров

uniq_ptr прямое назначение
У меня есть такая функция: unique_ptr<int> foo() { return unique_ptr<int>(new int[4]) } При вызове этого foo() я делаю следующее: unique_ptr<int> t = foo() Мне интересно, есть ли проблема в этом фрагменте кода?...
159 просмотров
schedule 11.07.2023

c++11 - Владение и геттеры
Я новичок в С++, и у меня проблемы с пониманием владения, особенно с геттером. Вот пример кода: class GameObject { public: Transform *transform(); private: Transform _transform; }; Я предполагаю, что необработанный указатель небезопасен...
2857 просмотров
schedule 17.05.2022

Работа с unique_ptr в контейнерах
У меня есть вектор unique_ptrs, который указывает на модели, сетки и т. д., например: std::vector<std::unique_ptr<Model>> mLoadedModels; Я выбираю unique_ptr, потому что он автоматически освобождает данные при деструкторе вектора,...
1549 просмотров
schedule 23.04.2023

Как инициализировать std::unique_ptr в конструкторе?
А.хпп: class A { private: std::unique_ptr<std::ifstream> file; public: A(std::string filename); }; A.cpp: A::A(std::string filename) { this->file(new std::ifstream(filename.c_str())); } Выдается ошибка, которую я...
41786 просмотров
schedule 28.03.2023

Является ли пользовательское средство удаления для std::unique_ptr допустимым местом для ручного вызова деструктора?
У меня есть очень простая реализация отражения, включающая класс Type , который создает экземпляр объекта для описываемого им класса. Разобранный на соответствующие части, он выглядит так: Тип.h: class Plugin; // forward declaration typedef...
742 просмотров

Почему make_unique не работает с unique_ptr::reset?
Я попытался скомпилировать некоторый код C++ с помощью VS2013, и unique_ptr::reset() , похоже, не работает с make_unique() ; небольшой компилируемый фрагмент кода репродукции: #include <memory> using namespace std; int main() {...
7671 просмотров
schedule 05.12.2022

Объект по-прежнему доступен после того, как std::unique_ptr выходит за пределы области видимости. Различное поведение во время выполнения
Следующий код передает в функцию modify_entry указатель на объект типа Entry , а внутри тела функции unique_ptr принимает необработанный указатель. Однако объект, на который указывают указатели, кажется, продолжает жить после возврата функции....
868 просмотров
schedule 19.06.2022

Конструктор копирования для класса с уникальным ptr базового класса
Когда у класса есть unique_ptr базового класса, это хороший способ реализовать конструктор копирования. Попробую объяснить на примере: struct Base { virtual void doSth() = 0; // to make the class abstract. }; struct Derived : public Base...
1599 просмотров
schedule 31.05.2023

Деструктор вызова метода unique_ptr‹T›.get() при назначении с необработанным указателем?
В приведенной ниже программе используется std::unique_ptr<T> , чтобы избежать ручного управления памятью. Есть два способа, которыми я пытался это реализовать. Проблема заключается во втором подходе, перед назначением необработанного...
1485 просмотров
schedule 19.06.2022

Перебор const T& в std::vector‹std::unique_ptr‹T› ›
У меня есть такой класс: class RPNExpr { std::vector<std::unique_ptr<Expr> > m_exprs; }; Каждый элемент m_exprs выделяется функцией-построителем в куче, должен быть доступен для чтения другими классами, но полностью...
635 просмотров
schedule 16.08.2022