Описание тега auto-ptr
Класс шаблона C++, который предоставляет ограниченную возможность сбора мусора для указателей, позволяя указателям автоматически уничтожать элементы, на которые они указывают, при уничтожении самого объекта auto_ptr. Не рекомендуется в C++11 в пользу unique_ptr.
5
ответов
Как правильно использовать auto_ptr для динамически размещаемых массивов?
Если я использую auto_ptr для хранения указателя на динамически распределенный массив, когда auto_ptr будет убит, он будет использовать обычную операцию удаления, а не delete[], таким образом, не удаляя мой выделенный массив. Как я могу (правильно) …
01 июн '10 в 00:33
1
ответ
Класс освобождается сразу после помещения в unique_ptr
Сейчас я работаю на сервере, используя Poco Net & Reactor Pattern. Я наблюдал, чтобы сделать класс CSConnection unique_ptr, потому что объекты класса ссылаются на пул рабочих потоков. Конструктор: CSConnection::CSConnection(StreamSocket& socket,…
09 ноя '13 в 18:28
1
ответ
Почему форма, указанная pb, уничтожается, когда в приведенном ниже примере выдается исключение?
Этот пример был взят из книги Страуступа, третье издание, раздел 14.4.2: void f (Point p1, Point p2, auto_ptr<Circle> pc, Shape* pb) { auto_ptr<Shape> p (new Rectangle(p1 ,p2)); auto_ptr<Shape> pbox(pb); p->rotate(45); / / ... i…
22 янв '12 в 11:43
2
ответа
Повторное получение "auto_ptr" и управление памятью
У меня такая ситуация: class MyClass { private: std::auto_ptr<MyOtherClass> obj; public: MyClass() { obj = auto_ptr<MyOtherClass>(new MyOtherClass()); } void reassignMyOtherClass() { // ... do funny stuff MyOtherClass new_other_class = n…
27 мар '09 в 16:02
1
ответ
tagpy: auto_ptr в питоне?
Я не профессионал, просто разочарован тем, что практически ни один аудиоплеер linux не поддерживает тег композитора id3v2, и я хотел бы выяснить, как его добавить. Taglib не поддерживает тег composer напрямую, но есть обходной путь, создавая тег с н…
08 янв '14 в 15:52
4
ответа
Ошибка std::auto_ptr
Для приведенного ниже кода C++ я получаю ошибку компилятора: class Mkt { int k; public: Mkt(int n): k(n) { throw; } ~Mkt() { cout<<"\n\nINSIDE Mkt DTOR function:\t"<<endl; } void func1() { cout<<"\n\nINSIDE FUNC1 function....value …
30 мар '11 в 09:00
1
ответ
В чем опасность передачи auto_ptr функции, ожидающей постоянной ссылки на auto_ptr?
Николай Йосуттис в своей книге "Стандартная библиотека C++ - учебное пособие и справочник" пишет на стр. 44 следующий абзац: Согласно концепции auto_ptrs, можно передать владение функцией, используя постоянную ссылку. Это очень опасно, потому что лю…
21 фев '12 в 16:57
2
ответа
Обычный указатель против автоматического указателя (std::auto_ptr)
Фрагмент кода (обычный указатель) int *pi = new int; int i = 90; pi = &i; int k = *pi + 10; cout<<k<<endl; delete pi; [Output: 100] Фрагмент кода (автоматический указатель) Случай 1: std::auto_ptr<int> pi(new int); int i = 90; …
23 апр '10 в 06:25
4
ответа
Это хороший вариант использования std::auto_ptr<>?
Пожалуйста, предположим, у меня есть функция, которая принимает указатель в качестве параметра. Эта функция может генерировать исключение, так как она использует std::vector<>::push_back() управлять жизненным циклом этого указателя. Если я объ…
22 ноя '09 в 03:33
1
ответ
Могу ли я передать auto_ptr по ссылке на функции?
В порядке ли следующая функция: void DoSomething(auto_ptr< … >& a)....
21 мар '10 в 09:57
0
ответов
Инициализация функций как auto_ptr со ссылкой на класс
Я пытаюсь понять поток кода, и я наткнулся на этот фрагмент кода в заголовочном файле typedef std::auto_ptr<Client> auto_ptr_t; static Client::auto_ptr_t open(const std::string& uri, const std::string& user, const std::string& pass…
20 ноя '17 в 07:46
5
ответов
Как проверить, является ли автоматический указатель нулевым?
Я новичок в авто указатель. У меня есть это: std::auto_ptr<myClass> myPointer(new MyClass(someArg)); Как я могу проверить, могу ли я создать экземпляр myPointer успешно? Я старался if (myPointer==NULL) и компилятор выдал ошибку: ни один операт…
15 авг '11 в 20:03
3
ответа
Какой тип (авто) указателя использовать?
Я натолкнулся на несколько вопросов, где ответы утверждают, что использование T* никогда не является лучшей идеей. Хотя я уже много использую RIIC, в моем коде есть одна особенность, где я использую T*. Читая о нескольких авто-указателях, я не смог …
20 июл '11 в 12:19
2
ответа
Почему unique_ptr можно использовать с контейнерами std, например с векторами <>?
Я понимаю, что auto_ptr нельзя использовать с векторами, поскольку auto_ptr не соответствует требованию быть копируемым конструктором. Поскольку копируемый auto_ptr изменяется, копирование не приводит к двум точным копиям, нарушая тем самым конструк…
24 фев '15 в 04:57
8
ответов
Это неправильно использовать auto_ptr с новым символом [n]
Если я объявляю временный автоматически удаленный символьный буфер, используя std::auto_ptr<char> buffer(new char[n]); тогда буфер автоматически удаляется, когда буфер выходит из области видимости. Я бы предположил, что буфер удаляется с помощ…
04 ноя '08 в 09:31
1
ответ
Почему в auto_ptr есть конструктор копирования шаблона и оператор переопределения?
Почему в auto_ptr есть конструктор копирования шаблона и оператор переопределения? Стандарт ISO для C++ определяет следующий интерфейс для auto_ptr. (Это скопировано прямо из стандарта 2003 года.) namespace std { template <class Y> struct auto…
13 июн '16 в 05:36
5
ответов
C++ Использует ли ссылки auto_ptr как переменные вне идиоматических?
Предположим, я хочу написать фабричный метод, который должен распределять гетерогенные объекты в куче и возвращать их вызывающей стороне. Я думаю о разработке API следующим образом: bool MakeEm(auto_ptr<Foo>& outFoo, auto_ptr<Bar>&am…
15 июл '11 в 18:01
3
ответа
Qt и auto_ptr
Я только что открыл для себя концепцию auto_ptr и мне это нравится! Поскольку Qt часто требует QList или QVector<(некоторый QObject или QWidget) *>, есть ли конкретная причина, по которой следует избегать auto_ptr. Если я прав, это позволяет заменит…
21 май '10 в 17:31
2
ответа
Как установить auto_ptr в NULL
Есть ли способ установить auto_ptr в NULL или эквивалент? Например, я создаю двоичное дерево, состоящее из узловых объектов: struct Node { int weight; char litteral; auto_ptr<Node> childL; auto_ptr<Node> childR; void set_node(int w, char…
15 авг '12 в 18:16
4
ответа
Есть ли причина использовать auto_ptr?
Прочитав объяснение Джосутиса об auto_ptr из его книги по STL, у меня сложилось впечатление, что, если бы я попытался использовать его в любом случае, я бы на 100% потерпел неудачу из-за одной из многих ловушек auto_ptr. Мой вопрос: есть ли реальные…
29 дек '10 в 12:40