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

Https://Pastebin.Com/8BXzn0Tq data в конструкторе и деструкторе это должен быть один

и тот же указатель?

31 ответов

21 просмотр

А что это у тебя за порно в коде? blob = (float *) operator new [] ( imageSize.cols * imageSize.rows * imageSize.channels() * sizeof(float) ); Это кто вам так учил?

Ffff-Ffff Автор вопроса
Ilya Zviagin
А что это у тебя за порно в коде? blob = (float ...

Сырой кусок памяти который считает нейронка после препроцессинга

Ffff-Ffff Автор вопроса
Ilya Zviagin
А что это у тебя за порно в коде? blob = (float ...

Можно просто new, просто я хотел обратить внимание с помощью operator new что это тупо кусок памяти

Ffff Ffff
А что плохого?

Зачем operator new явно вызывать?

Ffff-Ffff Автор вопроса
Ilya Zviagin
Зачем operator new явно вызывать?

Просто что бы выделить память

Ffff-Ffff Автор вопроса
Ilya Zviagin
Зачем operator new явно вызывать?

Это бэд практис? Я могу не знать

Ffff Ffff
Просто что бы выделить память

new float[imageSize.cols * imageSize.rows * imageSize.channels()]?

Ffff-Ffff Автор вопроса
Ffff Ffff
Изначально было так

А почему перестало быть так?)

Ffff-Ffff Автор вопроса
Ffff Ffff
Просто что бы выделить память

Что бы просто выделить, надо array или vector, и всё

Ffff Ffff
Что бы бросилось в глаза

Что ж, цель достигнута: бросилось)

Ffff-Ffff Автор вопроса
Ffff Ffff
Нейронка принимает float *

Да ты шо! Ужас какой...

Ffff-Ffff Автор вопроса
Sergey Anisimov
.data()?

а какие плюсы использовать std::vector вместо простого выделения памяти и удаления в деструкторе? кусок этот всегда фиксированный

Ffff Ffff
а какие плюсы использовать std::vector вместо прос...

> и удаления в деструкторе например. Повышаете RAII-гранулярность, что благоприятно. В частности, не требуется следить за исключениями в конструкторе Вашего типа. Если говорить о стандартобиблиотечном контейнере - он еще и набор инструментов по работе над содержимым предоставляет.

Ffff Ffff
а почему не требуется?

Сконструированные (под)объекты гарантированно разрушаются. Будь, скажем, вектор самостоятельным полем, освобождение захваченного ресурса (выделенной памяти) было бы делегировано ему и произошло бы автоматически, даже при броске из Вашего конструктора. Edit: В случае же с "сырым" new за освобождение отвечает Ваш конструктор.

Anatoly Shirokov
Деструктор

Конструктор. Речь о бросках из него. Edit: Условный T ( ): raw_ptr{new float} { throw 42; } против T ( ): u_ptr{new float} { throw 42; }

Ffff-Ffff Автор вопроса
Sergey Anisimov
Сконструированные (под)объекты гарантированно разр...

имеете ввиду явный вызов деструктора из конструктора при выбросе исключения?

Ffff Ffff
имеете ввиду явный вызов деструктора из конструкто...

Так в подавляющем большинстве случаев нельзя: разрушите объект дважды. Смотрите пример выше: в первом случае инициализируется float* raw_ptr, во втором - std::unique_ptr<float> u_ptr. В первом случае память потечет, во втором - нет.

Anatoly Shirokov
ok

Помимо этого, в vector уже реализован Аллокатор, что оптимизирует работу с динамической памятью.

Stepan Zorin
Помимо этого, в vector уже реализован Аллокатор, ч...

с этим я не спорил, да и вообще не спорил, что надо предпочитать умные указатели сырым

Ffff Ffff
имеете ввиду явный вызов деструктора из конструкто...

просто в случае исключения в конструкторе о всех сырых ресурсах надо позаботиться самостоятельно: struct holder { char* ptr; holder() try : ptr(new char) { throw 42; } catch(...) { delete ptr; } holder(const holder&) = delete; holder& operator=(const holder&) = delete; ~holder() { delete ptr; } }; int main() { try { holder h; } catch(...) { } } а вот если этот код переписать на std::vector, этого ужаса в конструкторе можно избежать

Ffff Ffff
а почему не требуется?

Потому что RAII работает

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

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

Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Коллеги, добрый вечер. Создаю коллекцию от TFPGMap, ключ - перечисление, значение - целое. Нужно отсортировать коллекцию по значению. Как это можно сделать?
Kirill Filippenok
11
Скажи а ты когда этот канал создавал ты уже дельфи не любил, или это со временем пришло?
Роман Лях (rgreat)
18
Привет, такой вопросик появился кажется ли вам что Rust слишком сложный/строгий для высокоуровневого программирования и слишком "безопасный"/строгий для низкоуровневого?
Крокант
10
Всем привет! Использую кастомное модальное диалоговое окошко, все по классике - mrOK, mrCancel как ModalResult. Однако есть нюанс - в главной форме есть универсальный обработч...
Олег Гранишевский
20
Карта сайта