Size: a a a

2021 March 03

D

Danya in supapro.cxx
Anatoly Shirokov
Посчитай себестоимость call
Компилятор справится
источник

AS

Anatoly Shirokov in supapro.cxx
Даня, в Си goto норм практика очистки ресурсов
источник

SK

Stas Koynov in supapro.cxx
Danya
int bad_bufn() {
 // очистка n
 ban_bufn-1()
}
по идее можно было на try {} повесить через исключения. но там из-за жесткого ограничения на стэк в одну страницу наверное полная беда...
источник

AS

Anatoly Shirokov in supapro.cxx
Считай паттерн
источник

SS

Sergey Skvortsov in supapro.cxx
Danya
int bad_bufn() {
 // очистка n
 ban_bufn-1()
}
goto - нормальный метод обработки ошибок в си
источник

D

Danya in supapro.cxx
Anatoly Shirokov
Даня, в Си goto норм практика очистки ресурсов
Я в курсе
источник

AS

Anatoly Shirokov in supapro.cxx
Danya
Я в курсе
Тогда прекращайте флуд
источник

D

Danya in supapro.cxx
Но это не меняет, что это кхм говно
источник

M

MrAndreson in supapro.cxx
Stas Koynov
ну в функциях получаются дубликаты:

упростим пример до:
buf1= kmalloc(123);
if(!buf1) goto bad_buf1;

buf2 = kmalloc(123);
if(!buf2) goto bad_buf2;

...
if(!bufn) goto bad_bufn;

//в конце раздел очистки:
в противоположную сторону
bad_bufn:
 очиста n;
...
bad_buf1:
 очиста 1;
Выше кто-то писал RAII. Если проблема с инициализацией ресурсов захват ресурса есть инициализация самое то, создал объект в конструкторе захватил ресурсы какие нужно, при ошибке удалил все и в деструкторе освободил ресурсы, не?
источник

K

Kirill in supapro.cxx
Ilia Zviagin
Что и куда кастовать?
Половина кастов в рантайм не попадает...
Я хочу кастануть в рантайме динамик-кастом один тип в другой по хеш-коду второго
источник

SK

Stas Koynov in supapro.cxx
Anatoly Shirokov
Даня, в Си goto норм практика очистки ресурсов
да я хочу узнать, как бы это нормально решить в ++.
источник

AS

Anatoly Shirokov in supapro.cxx
Stas Koynov
да я хочу узнать, как бы это нормально решить в ++.
Raii
источник

IZ

Ilia Zviagin in supapro.cxx
Kirill
Я хочу кастануть в рантайме динамик-кастом один тип в другой по хеш-коду второго
Нет, так сделать нельзя
источник

SK

Stas Koynov in supapro.cxx
MrAndreson
Выше кто-то писал RAII. Если проблема с инициализацией ресурсов захват ресурса есть инициализация самое то, создал объект в конструкторе захватил ресурсы какие нужно, при ошибке удалил все и в деструкторе освободил ресурсы, не?
так у тебя ошибка блин в конструкторе! у тебя ресурсы кончились на середине конструктора че делать?
источник

D

Danya in supapro.cxx
Stas Koynov
да я хочу узнать, как бы это нормально решить в ++.
Я бы сказал, но для этого надо вникать в этот код, а мне ну очень не хочется
источник

IZ

Ilia Zviagin in supapro.cxx
Stas Koynov
да я хочу узнать, как бы это нормально решить в ++.
Да никак. С и НОРМАЛЬНО — вообще несовместимые вещи.
источник

AS

Anatoly Shirokov in supapro.cxx
Stas Koynov
так у тебя ошибка блин в конструкторе! у тебя ресурсы кончились на середине конструктора че делать?
И че?
источник

SK

Stas Koynov in supapro.cxx
да не трольте меня, а просто скажите как и я пойду спать. я же не тролю, я хочу узанть. как решить эту задачу в ++.
источник

M

MrAndreson in supapro.cxx
Stas Koynov
так у тебя ошибка блин в конструкторе! у тебя ресурсы кончились на середине конструктора че делать?
Ну так создаешь объект, который будет захватывать ресурсы (класс) его создаешь в конструкторе, где проходит инициализация, при ошибке удаляешь
источник

NM

Nastya Medveda in supapro.cxx
Ilia Zviagin
Да никак. С и НОРМАЛЬНО — вообще несовместимые вещи.
Перестаньте, пожалуйста. Вы оскорбляете чувства программистов на Си.
источник