Флейм
GameDev.ru / Флейм / Форум / Архитектура без исключений (C++)

Архитектура без исключений (C++)

Поделиться
Страницы: 1 2 3 4 5 6 7 Следующая »
0xc0deПостоялецwww5 дек. 201717:51#0
Допустим у меня аллергия на исключения и я выстраиваю архитектуру приложения, так, чтобы нигде их не отлавливать и нигде их не бросать. Но! Есть вредные функции стандартной библиотеки или из third party, которые могут бросать исключения, что сгенерирует дополнительный код в функциях, которые располагаются ниже по стеку. Каждый метод/функцию описывать со спецификатором noexcept - рихнуться можно. Могу ли я вместо этого просто обернуть все участки кода, бросающие исключения, функциями/методами со спецификатором noexcept?

PS: да, меня вполне устроит, если в месте исключения будет вызвана std::terminate

Demiurg-HGПостоялецwww5 дек. 201717:56#1
0xc0de
Многие либы имеют дефайн запрещающий исключения.
Можно обернуть вызовы чужой библиотеки в свой враппер, там try..catch блок и вернуть код ошибки.
0xc0deПостоялецwww5 дек. 201718:23#2
Demiurg-HG
Или так
return [](){};Участникwww5 дек. 201719:00#3
Опять школьники с исключениями
Могу привести пример где компилятор сгенерит более оптимальный код с исключениями чем с ретурн кодами
0xc0deПостоялецwww5 дек. 201719:03#4
return [](){};
> Могу привести пример где компилятор сгенерит более оптимальный код с
> исключениями чем с ретурн кодами

Причем тут ретурн коды?

Panzerschrek[CN]Участникwww5 дек. 201719:07#5
-fno-exceptions не спасёт отца русской демократии?
0xc0deПостоялецwww5 дек. 201719:15#6
Panzerschrek[CN]
> -fno-exceptions не спасёт отца русской демократии?

Под g++ спасет :)

war_zesПостоялецwww6 дек. 20172:22#7
return [](){};
> Могу привести пример где компилятор сгенерит более оптимальный код с
> исключениями чем с ретурн кодами
давай
nesПостоялецwww6 дек. 201711:13#9
return [](){};
И где там код с исключениями?
return [](){};Участникwww6 дек. 201711:53#10
nes
В асм загляни, дурачок
=A=L=X=Постоялецwww6 дек. 201712:05#11
return [](){};

P.S.
А, сорян, ступил, не туда посмотрел.

Правка: 6 дек. 2017 12:09

innuendoПостоялецwww6 дек. 201712:08#12
0xc0de
> Допустим у меня аллергия на исключения

а что так ?

0xc0deПостоялецwww6 дек. 201712:18#13
innuendo
> а что так ?

глаз дергаться начинает :)

beejahПостоялецwww6 дек. 201714:06#14
return [](){};
Ты померил код, обрабатывающий ошибки (причем кривовато) с кодом, не обрабатывающим ошибки вообще, причем оба скомпилил с исключениями и сделал вывод "более оптимальный код с исключениями". Гениально. Мог бы просто сравнить c void() {}, там еще показательней разница будет.
Страницы: 1 2 3 4 5 6 7 Следующая »

/ Форум / Флейм / Программирование

2001—2017 © GameDev.ru — Разработка игр