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

Слышал в C++ исключения очень медленно работают и такой вопрос, если

я пишу свои структуры данных, например, стек, то критично ли будет выбрасывать исключение при его переполнении?
Или лучше без исключений обойтись может быть

11 ответов

12 просмотров

Можно использовать статус - возвращать бул - поместилась или нет. Ну и optional, при взятии со стека. Вообще исключения - на то и исключения, они не должны быть частью нормального флоу программы

Исключения - какие-то критические ситуации, которые, в нормальной ситуации, возникают крайне редко. Если для вашего стека не является нормой постоянно переполнятся - можно кинуть исключение

Это расхожие домыслы. То есть враньё. Да, при случаях, когда невозможно продолжать исполнение кода, надо кидать исключения.

Илья-Грошев Автор вопроса
Ilya Zviagin
Это расхожие домыслы. То есть враньё. Да, при случ...

RTTI то есть не тормозит исполнение программы?

Ilya Zviagin
Это расхожие домыслы. То есть враньё. Да, при случ...

Разве домыслы? Компиляторы научились оптимизировать код с исключениями? Хотя я не знаю, какая реально будет разница с исключениями и без

Константин
Разве домыслы? Компиляторы научились оптимизироват...

если ты используешь исключения вместо return, то очевидно будет не хорошо) А если у тебя раз в месяц озу переполняется и new бросает исключение, то никакого падения производительности не будет

Константин
Разве домыслы? Компиляторы научились оптимизироват...

они почти zero-cost в том случае, если исключения не выбрасываются, потому что код обработки исключений лежит далеко от основного кода и по сути не грузится

Илья Грошев
RTTI то есть не тормозит исполнение программы?

Вот ты не знаешь ничего а уже строишь домыслы.. Как rtti к исключениям относиться?

Илья-Грошев Автор вопроса
Ilya Zviagin
Вот ты не знаешь ничего а уже строишь домыслы.. Ка...

Странно от тебя это слышать) Как по твоему тип исключения определяется при его обработке?

Если что-то идёт не так, то можно делать std::abort() и проблем как и не было, пока что-то не пошло не так

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

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

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Коллеги, я тут для личных нужд пошел ставить MQTT сервер, пощупал mosquitto, но ужаснулся отсутствию такой банальности, как HTTP API для посмотреть список топиков. А тут что,...
Maksim Lapshin
13
#include <stdio.h> #include <stdlib.h> #include <time.h> void mass_first_generate(int mass[5][7]) {     for (int N = 0; N < 5; N++) {         for (int A = 0; A < 7; A++) {   ...
Чувак
6
Всем привет! Решаю 99 OCaml Problems и столкнулся со следующей проблемой (прошу палками не забивать, я OCaml практически не трогал до этого момента): open OUnit2 let create_...
К|/|pи/\/\ 6е3yглbIи
2
https://www.linkedin.com/posts/ugama-benedicta-kelechi-codergirl-103041300_mobiledevelopment-fluttertraining-handsonlearning-activity-7263445699227254784-IdHB?utm_source=share...
CoderGirl
16
Ну вот просто даже давайте вот как. Какой нибудь конкретный кейс, можете в пример привести, где бч работает и приносит прикладную пользу, а не просто что бы было? Не крипту.
Alexander Andreev
22
Точно, оно. У тебя там имена потоков выставляются?
Александр (Rouse_) Багель
11
возможно ли как-то передать в электрон или таури медиа поток с рендера 2д движка? двиг запускается как dll, а дальше надо как-то отправлять рендер кодировать не подходит, зр...
Kyle Nekto
7
Помогите пожалуйста. Делаю систему плагинов. Проблема сейчас в такая: плагины загружаются в основном потоке. FLibHandle := SafeLoadLibrary(FFileName) Но нужно еще выполнить фу...
Илья 🤣
10
объясните пожалуйста, почему функция не работает должным образом? вроде должно брать активное окно сравнивать его размер с размером экрана, и если есть совпадение = true прове...
JF
12
Карта сайта