> Так то ж Керниган и Ритчи! А в джаве вообщето их попутать невозможно - if (x=y) - это сразу syntax error ну так там булев тип есть, а в ц, как обычно, все не для обезьян сделано, а чтоб мозги головоломками поупражнять - выражение булево, а результат целый, да
The C++ bool type was not designed to be typesafe. It is treated as just another integral type, with builtin implicit conversions to numeric types.
вот кстати забавная попытка сделать нормальный булев тип на ц++
A Typesafe Boolean Class for C++
We try to implement a boolean class for C++ that has the same sensible semantics as the Java boolean type.
http://www.wambold.com/Martin/writings/typesafe-bool.html
понадобились конструкции вида
Bool (T x, typename Constraint<ExplicitlyConvertible<T>::value>::Type = 0): val_ (x)
но проблемы то не решает, поскольку в for и if то все останется по старому