> Компилятору обьяснять не надо, он вообще-то тупой..Мне надо получить результат от компилятора, и значит мне как-то надо высказаться на языке программирования так, чтобы получить именно тот результат, который я хочу. То есть объяснить компилятору. Так что ещё надо посмотреть, кто именно тут тупой.
> А вот когда программист не
> знает что такое прерывания и как из него сделать exception...
Эксепшны для истеричек. Большинство ошибок не фатальные и обрабатываются на месте, может быть надо пару стековых фреймов снять, для ясности, и там будет понятно как обрабатывать. Но из-за этого запускать механизмы размотки стека? И ради того, чтобы эти механизмы могли бы вызывать все деструкторы, стек ещё приводить в состояние, которое позволяет в рантайме найти все эти деструкторы, которые надо вызвать? Сложность ради сложности?
> И да... на x86 какой бы он не был - жизни нет
Язык C позиционируется как кроссплатформенный, и, наверное, это хорошее оправдание тому, что компилятор нельзя научить использовать регистр флагов для возврата булевских значений. Но факт остаётся фактом, сделать идеально на нём нельзя. То есть если даже задаться целью добавить в компилятор возможность генерировать такой код, то совершенно непонятно какие именно высказывания на C должны приводить к этому.
В случае же с Rust'ом, это возможно, по-крайней мере в теории. enum с двумя вариантами, типа Result'а -- это вещь которая семантически идентична тому, о чём я говорю, осталось лишь научить компилятор передавать недостающий бит информации через флаг.