2015-02-09 213 views
0

我通過macport安裝了g ++ 4.8。我可以通過調用g ++ - mp-4.8來使用它。C++編譯器g ++ 11

我用g ++ 4.8編譯這段代碼來看看我是否得到了C++ 11,但答案是預標準的C++。這怎麼可能?注意:我希望C++ 11可以使用自動迭代器。

if(__cplusplus == 201103L) std::cout << "C++11\n" ; 
else if(__cplusplus == 19971L) std::cout << "C++98\n" ; 
else std::cout << "pre-standard C++\n" ; 
+1

你添加了'-std = C++ 11'標誌嗎?另外,你錯過了那裏的C++ 03標準。通過「自動迭代器」,我猜你的意思是GCC 4.7 IIRC中已經提供的自動類型推導。 – 2015-02-09 18:01:15

+3

舊標準是'199711L',你缺少一個'1'。 @Joachim Pileborg:C++ 03沒有引入'__cplusplus'的新值# – StenSoft 2015-02-09 18:06:02

回答

4

用-std = C++ 11標誌編譯你的程序。

+0

謝謝,這是缺少-std標誌。 – user2343952 2015-02-10 10:15:41