Вопросы по теме 'smart-pointers'
Что такое умный указатель и когда его использовать?
Что такое умный указатель и когда его использовать?
629606 просмотров
schedule
25.05.2022
Указатели и контейнеры
Все мы знаем, что указатели RAW должны быть обернуты в некую форму интеллектуального указателя, чтобы обеспечить безопасное управление памятью при исключениях. Но когда дело доходит до контейнеров указателей, проблема становится еще более острой....
2852 просмотров
schedule
28.12.2021
Замена auto_ptr в VC++ 8
std::auto_ptr не работает в VC++ 8 (это то, что мы используем на работе). Моя главная претензия к этому заключается в том, что он позволяет auto_ptr<T> x = new T(); , что, конечно, приводит к ужасным сбоям, хотя его легко сделать по ошибке....
2097 просмотров
schedule
27.03.2024
Как работает подсчет ссылок интеллектуального указателя с подсчетом ссылок?
Другими словами, как реализация отслеживает количество?
Поддерживается ли объект, похожий на карту, доступный для всех экземпляров shared_ptr , ключом которых является адрес указателя, а значением является количество ссылок? Если мне нужно...
25555 просмотров
schedule
04.04.2023
Как избежать утечки памяти с shared_ptr?
Рассмотрим следующий код.
using boost::shared_ptr;
struct B;
struct A{
~A() { std::cout << "~A" << std::endl; }
shared_ptr<B> b;
};
struct B {
~B() { std::cout << "~B" << std::endl; }...
19545 просмотров
schedule
09.05.2023
Умный указатель С++ для необъектного типа?
Я пытаюсь использовать умные указатели, такие как auto_ptr, shared_ptr. Однако я не знаю, как его использовать в этой ситуации.
CvMemStorage *storage = cvCreateMemStorage();
... use the pointer ...
cvReleaseMemStorage(&storage);
Я не...
464 просмотров
schedule
27.09.2022
Когда уместно использовать интеллектуальные указатели C++ в графических интерфейсах (программы с основными циклами)
Я склоняюсь к использованию std::tr1::shared_ptr для автоматического управления указателем на служебный класс в моей программе с графическим интерфейсом.
В основном вот скелет программы:
int main () {
Allocate dynamic memory for utility...
202 просмотров
schedule
20.04.2022
Boost shared_ptr: как использовать настраиваемые удалители и распределители
Бесплатная функция allocate_shared может использоваться с любым стандартным распределителем. Но как насчет конструктора shared_ptr и метода сброса.
template<class Y, class D, class A> shared_ptr(Y * p, D d, A a);
template<class Y,...
5287 просмотров
schedule
16.07.2022
Каковы правила преобразования между различными интеллектуальными указателями в C ++
TR1 представил shared_ptr, weak_ptr, scoped_ptr и unique_ptr и др.
Я хотел бы знать различные правила преобразования / продвижения типов между этими типами.
Например, что происходит, когда scoped_ptr назначается shared_ptr? Возможно ли такое...
6539 просмотров
schedule
08.03.2022
Некоторые вопросы об использовании CComPtr (при использовании Release ()? Могу ли я вернуть CComPtr ?,)
Я пишу надстройку для Internet Explorer (BHO) и использую интеллектуальные указатели CComPtr. Я думаю:
Когда мне следует использовать функцию CComPtr.Release ()?
In this this link it's used to release
browser object. Where else should I...
13583 просмотров
schedule
09.07.2022
Явное ключевое слово в MS Visual Studio 4.1
Я реализую класс интеллектуального указателя с использованием дженериков, и я хотел заставить пользователей этого класса правильно создавать интеллектуальный указатель с использованием такого синтаксиса, как
MyReference<TestCls>(mytest3))...
148 просмотров
schedule
30.07.2022
Распространение константности на данные, на которые указывают переменные-члены
Новичков в C++ часто сбивает с толку тот факт, что константные функции-члены могут вызывать неконстантные методы для объектов, на которые ссылается класс (либо по указателю, либо по ссылке). Например, совершенно верно следующее:
class SomeClass...
2893 просмотров
schedule
16.08.2023
Удаление указателя на неполный тип и умные указатели
При попытке использовать auto_ptr с типом, который был объявлен с предварительным объявлением, например так:
class A;
...
std::auto_ptr<A> a;
деструктор A не вызывается (очевидно, потому что auto_ptr внутренне delete s не может...
6515 просмотров
schedule
14.04.2023
Вопрос по enable_shared_from_this
Возможный дубликат: что полезность enable_shared_from_this
Я хочу иметь представление о том, что такое общие указатели. Итак, я погуглил и получил некоторое представление о них. И я наткнулся на веб-сайт, на котором был представлен...
869 просмотров
schedule
24.03.2022
Смысл использования std::auto_ptr
В чем смысл auto_ptr ? Посмотрите на этот код:
#include <iostream>
#include <memory>
class A
{
public:
~A()
{
std::cout << "DEST";
};
};
void func(A* pa)
{
std::cout << "A pointer";
}
void...
4601 просмотров
schedule
02.09.2022
Композиция и круговая зависимость
Канал содержит элементы типа E.
Канал также имеет порт , который дает доступ к элементам в канале.
Это должно выглядеть примерно так:
template<
typename E>
class IOutPort{
public:
...
/**
* Takes an...
362 просмотров
schedule
23.11.2022
Создайте boost::shared_ptr для существующей переменной
У меня есть существующая переменная, например.
int a = 3;
Как мне теперь создать от boost::shared_ptr до a ? Например:
boost::shared_ptr< int > a_ptr = &a; // this doesn't work
44137 просмотров
schedule
27.09.2023
Обработка умных указателей в контейнере stl
У меня есть класс Foo<T> , который имеет вектор интеллектуальных указателей на производные классы Shape . Я пытаюсь реализовать функцию-член at(index) . Вот что я хотел бы сделать интуитивно:
Foo<float> myfoo;...
2988 просмотров
schedule
29.04.2022
Ссылки между двумя интеллектуальными указателями
Читая этот stackoverflow ответ :
QWeakPointer — чувствуете ли вы повторяющийся паттерн? Так же, как std::weak_ptr и boost::weak_ptr, это используется в сочетании с QSharedPointer, когда вам нужны ссылки между двумя интеллектуальными...
91 просмотров
schedule
26.05.2024
Код рефакторинга для использования общих указателей Boost
Я написал проект, используя обычные указатели, и теперь мне надоело ручное управление памятью.
Какие проблемы можно ожидать во время рефакторинга?
До сих пор я уже потратил час, заменяя X* на shared_ptr<X> для типов, которые я хочу...
544 просмотров
schedule
29.08.2022