Вопросы по теме 'smart-pointers'
Как включить в проект только коды умных указателей BOOST?
Как лучше всего включить в проект только библиотеку интеллектуальных указателей ускорения, не добавляя в проект все библиотеки ускорения?
Мне нужна только библиотека интеллектуальных указателей boost в моем проекте, и я не хочу регистрировать /...
2846 просмотров
schedule
09.10.2021
Как заставить пользователей создавать объекты класса, производного от моего, только с помощью new?
Для реализации подсчета ссылок мы используем IUnknown - как интерфейс и класс шаблона умного указателя. В интерфейсе реализованы все методы подсчета ссылок, включая Release() :
void IUnknownLike::Release()
{
if( --refCount == 0 ) {...
175 просмотров
schedule
26.09.2021
enable_shared_from_this - пустой внутренний слабый указатель?
Я использую enable_shared_from_this<Base> , а затем наследую от Base . При попытке использовать shared_from_this() в конструкторе Derived (не в списке инициализаторов) я получаю исключение. Оказывается, внутренний слабый указатель равен...
7956 просмотров
schedule
29.10.2021
использование std :: tr1 :: shared_ptr в качестве внутреннего механизма для подсчета ссылок
Насколько безопасно и правильно использовать std :: tr1 :: shared_ptr, как в примере кода ниже, для подсчета ссылок? (это всего лишь конкретный образец, класс может содержать что угодно (void *) вместо ФАЙЛА *)
class File
{
public:
File(const...
442 просмотров
schedule
24.10.2021
Как вернуть интеллектуальные указатели (shared_ptr) по ссылке или по значению?
Допустим, у меня есть класс с методом, возвращающим shared_ptr .
Каковы возможные преимущества и недостатки возврата по ссылке или по значению?
Две возможные подсказки:
Раннее уничтожение объекта. Если я возвращаю ссылку shared_ptr by...
86632 просмотров
schedule
25.09.2021
Перегрузки оператора присваивания std :: shared_ptr или std :: unique_ptr
Я не вижу причины, по которой у них нет перегрузки оператора присваивания для простых старых указателей того типа, для которого они созданы. Если цель сделать интерфейс интеллектуальных указателей как можно ближе к простым старым указателям, то...
2774 просмотров
schedule
28.10.2021
передача умного указателя на функцию, ссылающуюся на параметр указателя
Как передать smart ptr функции, использующей указатель в качестве параметра?
smart_ptr<T> val; // I have this smart pointer
// And I want to pass it to this function, so that this function will fill the smart pointer with proper value
void...
1052 просмотров
schedule
11.10.2021
Есть ли ситуация, в которой я бы не стал использовать std :: make_shared?
Судя по проведенному мною исследованию, предпочтительным способом является std::make_shared строительства std::shared_ptr . В частности, потому что:
Он выполняет только одно выделение памяти по сравнению с использованием new , которое...
458 просмотров
schedule
13.10.2021
Безопасная ссылка в C ++ (указатель единственного владения с семантикой уведомления)
Мне нужно единоличное владение объектом, потому что мне нужно иметь возможность уничтожить его по требованию (иногда это имеет смысл; в этом случае объект представляет собой сеанс входа в систему, который из соображений безопасности пользователь хочет...
776 просмотров
schedule
12.10.2021
Преимущества использования BOOST shared_array по сравнению с shared_ptr
Я хочу использовать BOOST Smart pointer для управления памятью в моем приложении. Но я не уверен, какой умный указатель следует использовать для динамически выделяемого массива shared_ptr или shared_array .
Согласно BOOST doc Начиная с...
6346 просмотров
schedule
13.11.2021
граф сцены, общие указатели и распространение констант
Я работаю над существующим большим проектом, который в основном:
Использует граф сцены, где каждый узел имеет дочерние слоты
Выполняет этап инициализации, на котором каждый узел рекурсивно инициализирует своих дочерних узлов и выполняет...
471 просмотров
schedule
05.11.2021
Умные указатели Delphi XE7
Я новичок в Delphi с опытом работы на C ++ и пытаюсь понять, как можно реализовать интеллектуальные указатели. Я наткнулся на следующий пост, который пытаюсь использовать в качестве отправной точки: Delphi - умные указатели и дженерики TList...
2596 просмотров
schedule
10.10.2021
Общие сведения об общих указателях c ++
Привет, я делаю свой собственный умный указатель с подсчетом ссылок, но прежде чем я начну, есть две концепции, которые я не совсем понимаю.
Я понимаю, что когда создается общий указатель, указывающий на объект, я должен выделить память для...
330 просмотров
schedule
09.10.2021
Счетчик ссылок без блокировок и интеллектуальные указатели C ++
В общем, наиболее широко известные реализации классов smart ptr с подсчетом ссылок в C ++, включая стандартный std::shared_ptr , используют атомарный подсчет ссылок, но не предоставляют атомарный доступ к одному и тому же экземпляру smart ptr....
2971 просмотров
schedule
28.09.2021
Как shared_ptr увеличивает счетчик при передаче по значению?
У меня есть этот пример кода ниже. Я немного знаю о RVO (оптимизация возвращаемого значения) и о том, как конструктор копирования и оператор присваивания пропускаются во время оптимизации, а возвращаемое значение помещается непосредственно в память...
1328 просмотров
schedule
01.11.2021
Каков правильный интеллектуальный указатель, чтобы иметь несколько сильных ссылок и допускать изменяемость?
Я хочу иметь структуру в куче с двумя ссылками; один для меня, а другой - от закрытия. Обратите внимание, что код предназначен для однопоточного случая:
use std::rc::Rc;
#[derive(Debug)]
struct Foo {
val: u32,
}
impl Foo {
fn...
591 просмотров
schedule
26.11.2021
Что делает метод _Get для std :: weak_ptr и когда его следует использовать?
Я читал об умных указателях, в частности о слабых указателях. Я понял, что у слабых указателей нет аналогичного get() метода, как у общих указателей, потому что неясно, указывает ли слабый указатель на что-нибудь. Затем я обнаружил, что...
254 просмотров
schedule
04.11.2021
Delphi - странное поведение с конструкторами умных указателей
Я работаю над проектом, содержащим несколько пакетов. В одном из моих базовых пакетов я объявляю такой умный указатель (вот полный код):
unit UTWSmartPointer;
interface
type
IWSmartPointer<T> = reference to function: T;...
198 просмотров
schedule
05.11.2021
Требуется лучшее понимание интеллектуальных указателей с помощью Windows API
Мне сложно понять умные указатели (все еще на начальных этапах изучения tbh). Может быть, я слишком долго занимался проблемой, и мне не хватает простой концепции ...
Я сейчас превращаю все свои «новые / удаляемые» в интеллектуальные указатели,...
781 просмотров
schedule
01.10.2021
unique_ptr / auto_ptr выглядит одинаково с пользовательским удалением для c ++ 98
auto_ptr не поддерживает настраиваемое средство удаления, и tr1 shared_ptr мне не подходит. Существуют ли какие-либо хорошие варианты до c11 для unique_ptr / auto_ptr , похожие на настраиваемый средство удаления?
246 просмотров
schedule
30.11.2021