170 похожих чатов

Std::Unique_ptr<PreprocessingCpu> PreprocessingFactory::CreatePreprocessingCPU(Cv::Mat imageSize, cv::Size newShape) { std::unique_ptr<PreprocessingCpu> preprocessing =

std::make_unique<PreprocessingCpu>();
return preprocessing;
} можно ли возвращать std::unique_ptr по значению из объекта класса фабрика?

11 ответов

3 просмотра

Можно

Ffff-Ffff Автор вопроса
Max Kolesnikov
Можно

а уничтожится он когда вернувшийся из функции указатель выйдет из области видимости?

move надо добавить

Dilshod Nozimov
а NRVO?

я, честно, не помню, с какого стандарта он гарантируется, поэтому исключительно по логике: unique_ptr не copyable, чтобы переместить владение, надо мувать

Dmitriy [Отпуск]
C 17

тогда с этого момента можно не мувать

Похожие вопросы

Обсуждают сегодня

Друзья, за кем?
Magic
12
Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
58
Сообщение* в закодированном виде. То есть, просто сделать sendMessage?text=Привет бла-бла! не получится, надо в HEX переводить, и добавлять процент, типа такого: sendMessage?t...
КТ315
21
Всем привет. Кто-то может подсказать, как можно перевести значения Selection поля, если список значений в нем формируется динамически? Я изначально их получаю из selection дру...
Наталья Селезнева
6
А случайно нет ли в паскале штатной возможности передать указатель и количество туда где array of в качестве аргумента?
zamtmn
25
Или даже по-другому вопрос выстрою Есть ли вообще в electron'e для винды, возможность кнопки действий в нотификацию впихнуть ?
Андрей
7
приветы , подскажите что я не так сделал , почему у меня скрипт не работает в программе Revit ? ;Autohotkey_RU IfWinActive ("ahk_exe Revit.exe") ; только в открытом Revit Gu...
Anton Terentev
2
> комьюнити я бы не судил по этому чату. Как мы видели по статам просмотров нескольких телеговских постов, то в чате их набивается 30-40 или даже выше, когда как общаются акти...
Constantin F.
4
void bytes2hex(uint8_t* to, uint8_t* from, uint16_t l) { // len(from) == l; len(to) == l * 2 for (uint16_t i = 0; i < l; ++i) { *(to++) = hex[(from[i] >> 4) & ...
#
3
Ну раз я пока тут, задам пару глупых вопросов. Зачем писать на ассемблере если компилятор довольно умный, а ассемблер много времени занимает? В каких прикладных задачах сейчас...
Максим Рябцев
20
Карта сайта