for (int i(0); i < 10; ++i) { ... }
Has the int i(0)
syntax inside the for loop initializer always been allowed in standard C++?
It compiles fine with g++ -std=c++98
, but I don't trust compilers when it comes to standard details.
Here are the relevant parts of the syntax found in The C++ Programming Language, Appendix A:
iteration-statement:
...
for (for-init-statement condition_opt; expression_opt) statement
for-init-statement:
...
simple-declaration
simple-declaration:
decl-specifier-seq_opt init-declarator-list_opt;
init-declarator-list:
init-declarator
init-declarator-list , init-declarator
init-declarator:
declarator initializer_opt
initializer:
= initializer_clause
( expression-list )
So yes, the for (int i(0); ...
syntax has always been allowed in standard C++.