Соглашусь, да искусственный. Но он показывает, что строгая типизация не дает полной защиты от не правильной трактовки приоритетов операторов. Хотя очень помогает, особенно от ошибок типа: if (a = b) { /* ... */ }
К сожалению в C++ из-за населения С такая типизация в принципе не возможна.
if (a = b) { /* ... */ }
К сожалению в C++ из-за населения С такая типизация в принципе не возможна.
bool Z = X && (A == B) ? !A : !B;
то компилятор это съест, однако же подобная ошибка останется.