On Sat, 1 Oct 2005, [EMAIL PROTECTED] wrote:

C++ would be a better language if the boolean type did not implicitly
convert from int. For example, many novice programmers make the
mistake.

  if (i = j) dosomething(); // Should be i == j

If conversion to boolean required explicit this would all be solved. It
would mean all the old code with expressions like "while (p) ... "
would need to be changed to "while (p != NULL) ...". But I think the
change would be well justified.

What about a GCC option to turn off implicit conversion to boolean?

[~] more a.cpp
int main(void)
{
    int i = 0, j = 0;
    if (i = j)
        return 0;
    else
        return 1;
}
[~] g++ -Wall a.cpp
a.cpp: In function `int main()':
a.cpp:4: warning: suggest parentheses around assignment used as truth value

Nick

Reply via email to