在answer有以下代码:定义里面fstream的一个“如果”有条件
if (std::ifstream input("input_file.txt"))
;
这似乎方便,限制了“输入”变量到它的确认范围是有效的,但是没有VS2015和g ++似乎编译它。它是一些编译器特定的东西,还是它需要一些额外的标志?
在VS2015中,IDE突出显示了“std :: ifstream”和“input_file.txt”以及最后一个括号。 “std :: ifstream”被标记为“错误:函数类型不允许在这里”。
VS2015 C++编译器提供了以下错误:
- C4430缺少类型说明符 - 假定为int。注意:C++不支持默认int
- C2059语法错误: '('
你*可以* *在*条件中声明一个变量*一直返回到C++ 03。只是初始化的形式是有限的。 –
@FredLarson Answr更新。我错了。回到C++ 98/03,你可以声明一个变量。 – NathanOliver
@NathanOliver它不会限制'input'的范围吗?还是仅仅是糖? – user3358771