Я привык к Delphi VCL Framework, где TStreams генерируют исключения из ошибок (например, файл не найден, полный диск). Я портирую некоторый код, чтобы использовать С++ STL вместо этого, и были пойманы iostreams, не выбрасывая исключения по умолчанию, но устанавливая флаги badbit/failbit вместо этого.
Два вопроса...
a: Почему это? Кажется, странное дизайнерское решение для языка, построенного с исключениями в нем с первого дня?
b: Как лучше избегать этого? Я мог бы создавать классы прокладок, которые бросаются так, как я ожидал, но это похоже на переосмысление колеса. Может быть, есть библиотека BOOST, которая делает это более здраво?