fre*_*low 1 c++ syntax for-loop initialization parentheses
for (int i(0); i < 10; ++i) { ... }
Run Code Online (Sandbox Code Playgroud)
int i(0)在标准C++中是否始终允许for循环初始化程序中的语法?
它编译得很好g++ -std=c++98,但在标准细节方面,我不相信编译器.
是.它是一个简单的变量声明(语言语法中的简单声明),它在C++中明确允许循环的for-init-statement(与C相反).
特别是,在语言语法中,以下是等效的(都是简单声明):
int i(0);
int i = 0;
Run Code Online (Sandbox Code Playgroud)
以下是C++编程语言附录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 )
Run Code Online (Sandbox Code Playgroud)
所以,是的,for (int i(0); ...标准C++中一直允许使用语法.