Re[8]: Разработка на чистом C
От: _NN_  
Дата: 31.10.16 11:56
Оценка:
Здравствуйте, lpd, Вы писали:

lpd>Здравствуйте, _NN_, Вы писали:


_NN>>Здравствуйте, lpd, Вы писали:


lpd>>>Пример абсолютно бессмысленный т.к. count всегда >0.

_NN>>Как раз это и смысл исключения, защититься от случайной ошибки.
_NN>>Без него придется писать:

_NN>>...

lpd>Я вовсе не против C++, кроме последних стандартов.

_NN>>Проблемы с C++ там не от использования исключений, а например, от того, что таблица виртуальных функций может быть выгружена из памяти в неподходящий момент.

lpd>Вообщем-то элементы ООП в ядре Linux присутствуют — аналог this для структур. Но проблем несколько. Прежде всего процессор для кода ОС является не абстракцией, а всплывают низкоуровневые моменты вроде той же памяти, переключения контекста и прерываний. Посмотрю, как будешь кидать exception из прерывания и кто его будет обрабатывать.
Понятно, что где-то нужно ограничить себя в фичах.
Напомню, что в C это аналогично. До инициализации C Runtime тоже не всё позволено делать.

lpd>Получится, что для существенной части кода будет запрет на исключения, либо смесь чистого C и C++ с переходниками. Все это многоплатформенно. И стоит ли игра свеч? Особенно если учесть, что stl полностью с std::thread не будет.

Как минимум наличии типа как ссылки (для защиты от нулевых указателей) и возможность писать шаблонный код (который вообще может вылиться в оптимизацию во время компиляции) уже могли бы исключить многие ошибки на этапе разработки.
http://rsdn.nemerleweb.com
http://nemerleweb.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.