D
@mrprogguy said:Actually, if you're getting technical, if(), while(), switch(), for(), and do() are all functions.
And even if C used the same symbol for assignment and evaluation, int c = c = some_value; would still be legal because c would be initialized to stack trash. In any language, the addition of the variable to the symbol table occurs before the assignment is parsed; C++ has assignment constructors, of course, but that doesn't change the rule--only what happens as a result of the parsing.
On further reflection I can see that holding in a single-pass compiler or interpreter. In a multi-pass compiler or interpreter, I can see that being held in abeyance. Javascript comes to mind. Are you missing TopCod3r or something?