Вопросы по теме '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 просмотров
schedule
09.05.2024
Может ли 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 просмотров
schedule
04.08.2022
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 просмотров
schedule
26.11.2022
Почему 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