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

Работает ли std::bind с типами только для перемещения вообще и std::unique_ptr в частности?
Я пытаюсь использовать boost:: asio и сталкиваюсь с трясиной. Я пытаюсь скомпилировать следующий код: std::unique_ptr<buffer_t> buffer = buffers.pop(); std::function<void(const boost::system::error_code&, size_t)> t =...
5865 просмотров
schedule 19.03.2024

unique_ptr с удалением
Я пытаюсь использовать std::unique_ptr с помощью удаления. Это мой код: template<class T> struct Deleter { void operator()(T* p) { delete[] p; } }; void Test() { vector<unique_ptr<char>> v;...
1546 просмотров
schedule 21.02.2024

Ошибка владения unique_ptr при возврате unique_ptr из функции
Я новичок в unique_ptr. Все шло хорошо, пока я не наткнулся на функцию, возвращающую новый unique_ptr. Компилятор, кажется, жалуется на более чем один объект, потенциально владеющий unique_ptr. Я не уверен, как удовлетворить жалобу компиляторов....
2913 просмотров
schedule 21.04.2024

ошибка: ‘unique_ptr’ не является членом ‘std’
Я думаю, это довольно очевидно - я не могу использовать функции С++ 11, хотя я думаю, что у меня все настроено правильно - что, вероятно, означает, что я этого не делаю. Вот мой код: #include <cstdlib> #include <iostream> class...
60412 просмотров
schedule 07.10.2023

Должен ли быть разрешен std::unique_ptr‹void›
Это очень простой вопрос. Рассмотрим следующий код: #include <iostream> #include <memory> typedef std::unique_ptr<void> UniqueVoidPtr; int main() { UniqueVoidPtr p(new int); return 0; } Компиляция с помощью cygwin...
10950 просмотров
schedule 21.02.2024

Преобразование unique_ptr‹Base› в unique_ptr‹Derived›
У меня есть ряд фабрик, которые возвращают unique_ptr<Base> . Однако под капотом они предоставляют указатели на различные производные типы, то есть unique_ptr<Derived> , unique_ptr<DerivedA> , unique_ptr<DerivedB> и т. д....
26287 просмотров

Преимущества unique_ptr над auto_ptr?
Я не совсем понимаю преимущества unique_ptr по сравнению с auto_ptr , или я еще не совсем уверен, зачем нам нужно использовать unique_ptr . Я вижу следующие отличия. 1) unique_ptr поддерживает массивы, поэтому деструктор unique_ptr...
1399 просмотров
schedule 15.11.2022

Копирование значения std::unique_ptr через разыменование
Я написал следующий код, в котором пытаюсь скопировать значение объекта unique_ptr в структуру. #include <iostream> #include <memory> using namespace std; struct S { S(int X = 0, int Y = 0):x(X), y(Y){} // S(const S&)...
8289 просмотров
schedule 11.05.2024

c++ Приведение вектора unique_ptr‹Base› к unique_ptr‹Derived›, где производным является шаблон
У меня следующая ситуация: Base — это базовый класс. T — это шаблон, который может принимать любой производный класс от Base . Базовый слой предоставляет мне данные из класса Base , которые мне нужно преобразовать в определенный класс на...
1561 просмотров
schedule 11.10.2022

Ошибка привязки make_unique
У меня проблемы с использованием std::bind с std::make_unique . У меня есть объект, конструктору которого я передаю фабричные функции для создания std::unique_ptr объектов другого типа класса. Используя VS2013, это работает: Tester...
586 просмотров
schedule 16.11.2022

Почему QString и vector‹unique_ptr‹int›› здесь кажутся несовместимыми?
Я пытаюсь скомпилировать некоторый код, который сводится к этому: #include <memory> #include <vector> #include <QString> class Category { std::vector<std::unique_ptr<int>> data; QString name; }; int main()...
294 просмотров
schedule 30.04.2024

Как я могу отсортировать вектор unique_ptr?
Я объявил вектор следующим образом: vector<unique_ptr<Worker>> Workers . Worker — это базовый класс с закрытым полем name , который имеет два производных класса: Builder и Driver . Я добавляю к Workers векторным объектам...
6244 просмотров
schedule 20.05.2024

std::list‹std::unique_ptr›: пустой список инициализаторов вместо конструктора по умолчанию
Код #include <list> #include <memory> class B; class A { std::list<std::unique_ptr<B>> bs; public: A(); ~A(); }; int main() { A x; return 0; } очевидно компилируется. Это не связано, потому что...
540 просмотров
schedule 08.07.2022

Является ли std::move() таким же, как использование reset() и release() вместе?
Я реализую BST и хочу проверить, какая из этих строк правильна/более эффективна для удаления узла и связывания его родителя с его дочерним элементом? // ________[a]_______ // / \ // _[b] __[c]_ //...
64 просмотров
schedule 03.09.2022

std::unique_ptr и пользовательские удаления
В статье Скотта Мейера «Эффективный современный C++» обсуждается использование std::unique_ptr с пользовательским средством удаления и говорится: Удалители, которые являются указателями на функции, обычно вызывают увеличение размера...
723 просмотров
schedule 14.07.2022

Как вытащить unique_ptr из priority_queue и сохранить семантику владения
У меня есть unique_ptr в priority_queue, и я хочу удалить его из этой коллекции и поместить в очередь, сохранив при этом семантику владения unique_ptr. Но я не могу найти способ снять это с priority_queue без ошибки компиляции: «попытка сослаться на...
536 просмотров
schedule 15.09.2022

Как инициализируются std::arrays интеллектуальных указателей?
В настоящее время я пытаюсь инициализировать следующий массив, Spot — это класс, который определен в другом месте: static const int WIDTH = 7; static const int HEIGHT = 6; std::array<std::array<std::unique_ptr<Spot>, WIDTH>,...
216 просмотров
schedule 03.11.2022

Нет подходящего конструктора по умолчанию для std::unique_ptr‹SDL_Texture› внутри std::unordered_map
Это продолжение моего предыдущего поста: (извините за цепочку вопросов) Нет подходящего конструктора по умолчанию для std::unique_ptr Я столкнулся с похожей ошибкой, на этот раз с std::unique_ptr в контейнере std::unordered_map : (Извините,...
288 просмотров
schedule 03.10.2022

умный указатель с неожиданным поведением
Когда я просматривал умные указатели, я пробежался по следующему коду. Работает как положено. #include <iostream> #include <memory> using namespace std; class Double { public: Double(double d = 0) : dValue(d) { cout <<...
49 просмотров
schedule 06.06.2024

Зачем использовать std :: make_unique в C ++ 17?
Насколько я понимаю, C ++ 14 представил std::make_unique , потому что из-за того, что порядок оценки параметров не был указан, это было небезопасно: f(std::unique_ptr<MyClass>(new MyClass(param)), g()); // Syntax A (Объяснение: если...
13006 просмотров
schedule 29.11.2023