Вопросы по теме 'smart-pointers'
лучшая практика при возврате интеллектуальных указателей
Как лучше всего возвращать интеллектуальный указатель, например boost :: shared_ptr? Должен ли я стандартно возвращать интеллектуальный указатель или базовый необработанный указатель? Я родом из C #, поэтому всегда возвращаю умные указатели, потому...
25834 просмотров
schedule
17.10.2022
Как реализовать интеллектуальный указатель, который можно создать с помощью void?
Некоторые шаблоны интеллектуальных указателей, такие как boost :: shared_ptr, могут быть созданы с void для хранения произвольного объекта:
http://www.boost.org/doc/libs/1_39_0/libs/smart_ptr/sp_techniques.html#pvoid
Ниже представлена...
1832 просмотров
schedule
09.11.2023
Условное создание экземпляра шаблона во время выполнения
У меня есть класс шаблона
template <class T>
class myClass
{
public:
/* functions */
private:
typename T::Indices myIndices;
};
Теперь в моем основном коде я хочу создать экземпляр класса шаблона в...
907 просмотров
schedule
12.03.2023
Достоинства / недостатки автоматических указателей
Каковы преимущества и недостатки использования автоматических указателей (auto_ptr) по сравнению с обычными указателями? Я слышал, что он автоматически освобождает память, но почему он не используется часто?
12650 просмотров
schedule
21.09.2023
должен ли std::auto_ptr‹›::operator = сбросить/освободить существующий указатель?
Я прочитал здесь о std::auto_ptr‹>:: оператор=
Обратите внимание, однако, что объект с левой стороны не освобождается автоматически, когда он уже указывает на какой-либо объект. Вы можете явно сделать это, вызвав сброс функции-члена, прежде...
824 просмотров
schedule
19.03.2023
Можно ли использовать интеллектуальные указатели С++ вместе с malloc C?
Часть моего кода по-прежнему использует malloc вместо new . Причина в том, что я боюсь использовать new , потому что он выдает исключение, а не возвращает NULL , что я могу легко проверить. Оборачивать каждый вызов new в try{}catch(){} тоже...
16628 просмотров
schedule
30.01.2023
Следует ли библиотеке использовать интерфейс, использующий интеллектуальные указатели?
Я начинаю писать библиотеку и обдумываю ее интерфейс. Все предыдущие библиотеки, которые я написал, используют необработанные указатели (как внутри, так и в интерфейсе), и теперь я хочу попробовать библиотеку интеллектуальных указателей, которая...
770 просмотров
schedule
08.03.2022
Реализация умного указателя на C
Возможный дубликат: Умные указатели / безопасная память управление для C?
У меня есть встроенное приложение, в котором я выделяю объект в динамической памяти и передаю его другим модулям.
Я хочу создать умный указатель на этот...
4746 просмотров
schedule
26.01.2023
Пользовательские слабые/сильные опорные указатели
Я создаю свою собственную реализацию отношения слабого/сильного указателя ссылки, и я запутался в конфигурации. Когда у меня есть класс, содержащий сильную ссылку, и я хочу установить сильный указатель на другой класс, имеющий слабую ссылку, должен...
1700 просмотров
schedule
22.01.2023
Слабая/сильная связь указателя ссылки
Я пытался написать свой собственный слабый/сильный указатель, но я не совсем понимаю взаимосвязь. Все, с чем я, кажется, сталкиваюсь, не проясняет и не объясняет, и довольно часто один документ противоречит тому, что говорит другой. Может ли...
6860 просмотров
schedule
26.08.2023
Предотвращение взрыва заголовка в C++ (или C++0x)
Скажем, с общим кодом, например следующим:
y.hpp:
#ifndef Y_HPP
#define Y_HPP
// LOTS OF FILES INCLUDED
template <class T>
class Y
{
public:
T z;
// LOTS OF STUFF HERE
};
#endif
Теперь мы хотим иметь возможность...
1450 просмотров
schedule
13.06.2023
Простое руководство по использованию указателей
Возможный дубликат: Каковы препятствия на пути к пониманию указателей и что можно сделать, чтобы их преодолеть? Что такое умный указатель и когда его следует использовать?
Я изучаю C ++, и у меня были большие трудности с изучением...
414 просмотров
schedule
07.07.2022
Передача unique_ptr функциям
Я пытаюсь «модернизировать» какой-то существующий код.
У меня есть класс, который в настоящее время имеет переменную-член «Device * device_».
Он использует new для создания экземпляра в некотором коде инициализации и имеет "delete device_" в...
33870 просмотров
schedule
22.03.2022
Умные указатели и это в длительном методе
есть связанные вопросы, такие как умные указатели + это считается вредным? , но они не обрабатывают мои кейс. Все эти вопросы касаются раскрытия необработанного указателя this в случае подсчета ссылок интеллектуальными указателями. Однако моя...
112 просмотров
schedule
28.12.2022
Можно ли вернуть ссылку на переменную-член, не являющуюся указателем, в качестве указателя?
Недавно я наткнулся на код C++, который выглядел так:
class SomeObject
{
private:
// NOT a pointer
BigObject foobar;
public:
BigObject * getFoobar() const
{
return &foobar;
}
};
Я спросил программиста, почему...
1329 просмотров
schedule
16.08.2023
Можно ли наследовать интеллектуальные указатели C ++ 11 и переопределять относительные операторы?
Согласно cppreference.com , std::shared_ptr предоставляет полный набор относительных операторов (==,! =, ‹ , ...), но семантика сравнения не указана. Я предполагаю, что они сравнивают базовые необработанные указатели с объектами, на которые есть...
4536 просмотров
schedule
09.02.2024
Шаблон проектирования для обнаружения утечек памяти для интеллектуальных указателей с подсчетом ссылок
У нас есть собственный класс интеллектуальных указателей, который подсчитывается с использованием базовых AddRef и Release.
Во время отладки я вижу, что многие объекты не выпускаются должным образом. Я могу видеть, какие объекты не выпускаются, но...
691 просмотров
schedule
11.10.2022
Есть ли ошибка в реализации GCC 4.7.2 оператора присваивания shared_ptr (шаблона)?
Мой вопрос касается реализации шаблона оператора присваивания shared_ptr в GCC 4.7.2, который, как я подозреваю, содержит ошибку.
ПРИМЕЧАНИЕ 1: СТАНДАРТ C++11
Вот подпись шаблона оператора присваивания, о котором я говорю:...
1357 просмотров
schedule
25.09.2022
scoped_ptr право собственности
Возможный дубликат: Что такое умный указатель и когда его использовать?
Я читал статью и нашел небольшой пример, демонстрирующий использование boost::scoped_ptr<T> :
#include <cstdlib>
#include <iostream>...
3057 просмотров
schedule
27.04.2022
Избегайте нарезки объектов для невиртуальных деструкторов
Я пишу код для интеллектуальных указателей в качестве упражнения. Используя онлайн-учебники ( 1 , 2 ) Я разработал обычный класс интеллектуальных указателей с подсчетом ссылок. Проблема в том, что я не могу понять следующее:
когда...
760 просмотров
schedule
08.01.2024