Описание тега make-shared
NoneMake_shared - это функция для создания общих указателей, представленная в C++11.
0
ответов
intrusive_ptr, тесты производительности shared_ptr
class X { public: std::string name; int age; long references; X(string n, int a) : references(0), name(n), age(a) {} }; inline void intrusive_ptr_add_ref(X* x){ ++x->references; } inline void intrusive_ptr_release(X* x){ if(--x->references == …
12 фев '13 в 17:03
1
ответ
Есть ли причина, по которой std::make_shared потребует конструктор по умолчанию?
Я пытаюсь выяснить, является ли это требованием от зерновых или нет. Я продолжаю получать сообщения о том, что Конструкторы класса (по умолчанию) являются частными, и я привел их по определенной причине. Однако исходная строка для ошибки, по-видимом…
07 ноя '13 в 11:47
3
ответа
Почему boost не имеет make_scoped()?
Повышение-х make_shared() функция обещает быть исключительной безопасностью при попытке создать shared_ptr, Почему нет make_scoped() эквивалент? Есть ли распространенная лучшая практика? Вот пример кода из boost::scoped_ptr документация, которая мне…
05 июл '12 в 02:46
2
ответа
Увеличить make_shared без аргумента шаблона
Я пытаюсь передать указатель на переменную стека в функцию (я не контролирую), которая принимает только boost::shared_ptr, Согласно этому ответу, используя boost::make_shared это путь Чтобы проверить эту функциональность, я написал это: #include <…
17 мар '17 в 17:59
1
ответ
C++ Предоставить конструктор списка инициализаторов для шаблона класса
У меня есть шаблон класса Templ с параметром шаблона T, а класс Templ имеет член данных типа T, называемый obj. Я написал шаблон конструктора переменной, который пересылает аргументы в конструктор obj: template <class T> class Templ { public: …
11 фев '13 в 02:14
2
ответа
Что такое make_shared неизвестного размера?
В этом ответе ТС заявляет boost::make_shared и т. д. поддерживают типы массивов - либо с неизвестным размером, либо с фиксированным размером boost::shared_ptr<int[]> sh_arr2 = boost::make_shared<int[]>(30); boost::shared_ptr<int[30]&g…
18 янв '17 в 13:19
1
ответ
Как использовать make_shared для создания массива объектов одного типа?
Мы могли бы использовать "make_shared" для создания объекта быстрее и безопаснее по сравнению с использованием "new". Например, shared_ptr<Dog> p = make_shared<Dog>("Luther"). Если мне нужно создать массив объектов (например, Dog[3]), мо…
30 дек '18 в 19:31
1
ответ
Конструктор, принимающий shared_ptr
У меня такая ситуация struct Foo { Foo(int x, int y) : x(x), y(y) { } int x, y; }; class Bar { public: typedef std::shared_ptr<const Foo> ConstFooPtr; typedef std::shared_ptr<Foo> FooPtr; Bar(int index = 0, FooPtr ptr = FooPtr()) : index…
26 янв '15 в 22:45
1
ответ
std::bind вызов std::make_shared
Я пытаюсь создать функтор, который возвращает shared_ptr, вызывая std:: bind для std:: make_shared, но синтаксис за мной, или, возможно, это даже невозможно? Примерно так: при условии, что конструктор MyBar принимает константную ссылку на MyFoo: std…
08 мар '11 в 20:43
1
ответ
Реализация фабричной функции интерфейса C++
Контекстуализация: Я работаю над алгоритмом распознавания лиц, и NIST - это организация, которая пытается стандартизировать тесты, измерения и сравнения среди всех доступных алгоритмов. Для тестирования и сравнения мне нужно реализовать их интерфейс…
04 июл '18 в 12:13
2
ответа
Странная ошибка при попытке сделать swap shared_ptr ()
Я относительный новичок в C++, пытающийся преобразовать существующий проект из необработанных указателей с запутанным протоколом управления памятью в использование C++11 shared_ptr, В целом все идет очень гладко, и я думаю, что понимаю, как shared_p…
23 сен '15 в 16:42
3
ответа
Был конструктор raw-указателя shared_ptr ошибкой?
Оглядываясь назад, учитывая make_shared, было бы shared_ptr есть конструктор, который принимает необработанный указатель, если он был введен в C++11? Есть ли веские аргументы или варианты использования в пользу этого конструктора? Это позволило бы и…
22 май '16 в 17:45
1
ответ
Использование make_shared с неполными типами
Я пытаюсь переключить свой код для использования make_shared<type>() но у меня есть много незавершенных типов (завершенных во время создания), и мне было интересно, будет ли make_shared работать с неполными типами или разрешить мне передать ти…
03 июн '12 в 20:40
1
ответ
C++11: make_shared не является членом std
Я пытаюсь обновить часть своего кода, и попытался включить make_shared, Я создал класс под названием Mail для отправки писем, теперь я попытался включить его: auto m = std::make_shared<Mail>(); Проблема в том, что я использую Makefile: SHELL =…
21 янв '15 в 11:53
1
ответ
Различия между make_unique и make_shared при обработке массивов
С C++17 вы можете использовать make_unique чтобы создавать умные указатели на массивы, такие как: unique_ptr<int[]> ptr = make_unique<int[]>(10); который создаст умный указатель на массив из 10 элементов (тот факт, что будет вызван надле…
30 авг '18 в 10:59
1
ответ
Инициализируйте std::array с помощью make_shared
Фон Я пишу драйвер для сетевого протокола и есть функция write(std::shared_ptr<package> package), где package является std::array<buffer_ptr,2> (0=> заголовок, 1=> тело). Для удобства хочу написать функцию write(buffer_ptr body), который…
01 апр '14 в 19:20
1
ответ
Как make_shared выделяет одну динамическую память для объекта менеджера и управляемого объекта
make_shared будет динамически выделять единицу памяти и, следовательно, улучшать производительность. Но как сделать одно выделение памяти, используя new как для управляемого объекта, так и для управляющего блока. Я хотел знать, как на самом деле про…
12 окт '16 в 18:20
0
ответов
Почему подписи make_shared и allocate_shared различаются для аргументов, которые нужно переслать?
Для того, чтобы создать std::shared_ptr для данного типа T Есть два пути среди других: std::allocate_shared а также std::make_shared, Основное отличие (или, по крайней мере, то, что меня интересует в этом вопросе) состоит в том, что первый делает вс…
17 фев '16 в 12:44
1
ответ
Как передать указатель boost::shared_ptr в функцию protobuf?
Я должен пройти boost::shared_ptr: boost::shared_ptr<Protobuf::Person::Profile> pProfile = boost::make_shared<Protobuf::Person::Profile>(); который является указателем protobuf, на функцию protobuf oPerson.set_allocated_profile(pProfile)…
20 апр '17 в 08:23
0
ответов
std::forward и фабрика, которая вызывает std::make_shared
У меня есть такой код... X* raw = ::new X("abc"); // do something benign to object std::shared_ptr<X> ptr(raw); Теперь рассмотрим то же самое, используя объектную фабрику... template<typename T, typename... A> std::shared_ptr<T> fa…
31 июл '17 в 12:50