Здравствуйте, 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 не будет.
Как минимум наличии типа как ссылки (для защиты от нулевых указателей) и возможность писать шаблонный код (который вообще может вылиться в оптимизацию во время компиляции) уже могли бы исключить многие ошибки на этапе разработки.