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

Не удается создать карту MoveConstructibles
У меня есть класс, содержащий std::unique_ptr<> , и я хочу поместить экземпляры этого класса внутрь std::map<> . Я думал, что одной из причин, побудивших ввести семантику перемещения в C++, была возможность помещать такие вещи, как...
1751 просмотров
schedule 21.03.2023

от std :: auto_ptr до std :: unique_ptr
С приходом нового стандарта (а части уже доступны в некоторых компиляторах) новый тип std::unique_ptr должен заменить std::auto_ptr . Точно ли их использование перекрывается (чтобы я мог выполнить глобальный поиск / замену в моем коде (не то,...
63874 просмотров

Использование std::unique_ptr
std::unique_ptr<int> p1(new int); std::unique_ptr<int> p2(new int); p2=p1; Здесь кажется, что p1 больше не является «уникальным», поскольку p2 также ссылается на него. Это законно С++? Имеет ли unique_ptr copy_semantics? Если...
51410 просмотров
schedule 21.06.2022

Перемещение unique_ptrs из одного вектора в другой
Я хотел бы переместить unique_ptr, хранящиеся в несортированном векторе, в другой вектор, который будет содержать отсортированный вектор указателей. Конечно, перемещение unique_ptr не приведет к автоматическому удалению элемента в первом векторе?...
9748 просмотров
schedule 12.12.2022

Требуется ли std :: unique_ptr ‹T›, чтобы знать полное определение T?
У меня есть код в заголовке, который выглядит так: #include <memory> class Thing; class MyClass { std::unique_ptr< Thing > my_thing; }; Если я включу этот заголовок в cpp, который не включает определение типа Thing , то он...
50219 просмотров
schedule 22.04.2023

Должен ли `unique_ptr‹ T const [] ›` принимать аргумент конструктора `T *`?
Код: #include <memory> using namespace std; struct T {}; T* foo() { return new T; } T const* bar() { return foo(); } int main() { unique_ptr< T const > p1( bar() ); // OK unique_ptr< T const [] > a1(...
824 просмотров
schedule 22.09.2022

Как объявить вектор unique_ptr как элемент данных класса?
Я хотел бы иметь вектор unique_ptr в качестве члена класса, который я создаю. class Foo { [...] private: vector<unique_ptr<Bar>> barList; } Но затем я начинаю получать загадочные сообщения об ошибках от компилятора...
13636 просмотров
schedule 04.09.2022

ошибка компиляции unique_ptr
Я думаю, это смущает, если я сказал вам, что не могу это скомпилировать. не могли бы вы помочь мне: #include<memory> using namespace std; int main() { std::unique_ptr<int> p1(new int(5)); return 0; } $ gcc main.cpp...
28351 просмотров
schedule 18.09.2022

автозаполнение unique_ptr в eclipse
Я играю с unique_ptr. В моем последнем сообщении люди помогли мне скомпилировать программу, которая использовала этот указатель, указав -std= c++0x во время компиляции. Теперь мне интересно, есть ли способ указать eclipse учитывать С++ 11 при...
3681 просмотров
schedule 03.07.2022

Вставьте unique_ptr в карту, указатель будет уничтожен
У меня есть следующий (упрощенный) класс: class Operator { private: std::map<std::string, std::unique_ptr<Operand>> op; public: template <class T> void insertOperand(std::string const &s, T o = T()) {...
2947 просмотров
schedule 11.09.2022

в чем смысл std::unique_ptr::get
Разве std::unique_ptr::get не противоречит цели иметь unique_ptr в первую очередь? Я ожидал, что эта функция изменит свое состояние, чтобы она больше не содержала указателя. Есть ли действительно полезное использование std::unique_ptr::get?
43155 просмотров
schedule 06.04.2023

Это правильный способ реализовать pimpl с unique_ptr и семантикой перемещения в С++ 11?
Я еще не видел пример pimpl, который использует и unique_ptr, и семантику перемещения. Я хочу добавить класс CHelper в контейнеры, производные от STL, и использовать pimpl, чтобы скрыть то, что делает CHelper. Это выглядит правильно?...
4877 просмотров
schedule 02.07.2023

Почему unique_ptr ‹T› (T *) явный?
Следующие функции не компилируются: std::unique_ptr<int> foo() { int* answer = new int(42); return answer; } std::unique_ptr<int> bar() { return new int(42); } Я считаю это немного неудобным. Что послужило основанием...
1802 просмотров

Ошибка компоновщика при использовании unique_ptr в C++/CLI
В настоящее время я конвертирую экземпляры auto_ptr в unique_ptr , но столкнулся с проблемой. Он отлично работает в части кода C++, но когда я делаю это на моем управляемом уровне C++/CLI (программное обеспечение использует как C#, так и C++), я...
4930 просмотров

Как передать интеллектуальные указатели в функции?
При передаче объектов в функции применяются ли к интеллектуальным указателям те же правила, что и к другим объектам, содержащим динамическую память? Когда я передаю, например, std::vector<std::string> в функцию, я всегда рассматриваю...
24042 просмотров

C++ передача аргумента unique_ptr
Предположим, у меня есть следующий код: class B { /* */ }; class A { vector<B*> vb; public: void add(B* b) { vb.push_back(b); } }; int main() { A a; B* b(new B()); a.add(b); } Предположим, что в этом случае все...
16903 просмотров
schedule 02.06.2022

Проблемы C++11 при переходе с Visual Studio 2010 на 2012
Я пытаюсь перенести свой проект из Visual Studio 2010 в Visual Studio 2012. В моем коде у меня есть обработка файлов, которая выглядит следующим образом: auto fileDeleter = [](FILE* f) { fclose(f); }; unique_ptr<FILE, decltype(fileDeleter)>...
1984 просмотров

Шаблон перемещения ctor для запакованного unique_ptr
Я хочу что-то похожее на unique_ptr, но гарантированно (в разумных пределах) не равное нулю. Я написал этот класс, который содержит unique_ptr, и я написал этот конструктор перемещения, который, как я надеялся, позволит мне перемещать-конструировать...
756 просмотров

Потокобезопасное перемещение unique_ptr
Можно ли безопасно перемещать unique_ptr с помощью атомарных операций С++ 11? В настоящее время у меня есть такой код std::unique_ptr<SyncToken> DataManager::borrowSyncToken() { std::unique_lock<std::mutex>...
2949 просмотров

unique_ptr в std::set не может найти оператор‹, хотя он есть
Возможный дубликат: Clang, std::shared_ptr и std::less/оператор‹ Так что да, в названии почти вся проблема. Как вы можете видеть из фрагмента ниже, я реализовал operator< , поэтому я понятия не имею, что происходит. Вот код:...
694 просмотров
schedule 29.08.2022