在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