2013-02-23 42 views
0

我很高興看到,地圖::在()加入到C++ 11,但在周圍挖,我看這就是它在GCC庫中已經定義,並使用-std = C++ 0x, C++ 98。使用地圖::在()中預先的C++ 0x

使用帶的C++ 0x前的標準考慮便攜編譯代碼這種方法嗎?

+0

這是從C + + 11,所以是的,它支持C++ 11的任何實現應該支持標準的一部分。 – 2013-02-23 00:08:22

+0

@JesseGood:雖然OP提到'-std = C++ 0x'。這相當於'-std = C++ 11'嗎? – 2013-02-23 00:09:06

+1

是的,它們是等價的,但'-std = C++ 0x'已棄用於'-std = C++ 11'。 – 2013-02-23 00:09:35

回答

1

我想你誤解了什麼-std=c++0x手段。從C dialect options

'C++ 11'

'的C++ 0x'

2011年的ISO C++標準的修訂加。對C++ 11的支持仍然是實驗性的,並且在未來的 版本中可能會以不兼容的方式進行更改。名稱'C++ 0x'已棄用。

正如你可以看到c++0xc++11是等價的,c++0x已被棄用。

+2

它肯定不意味着「前C++ 0x」 – 2013-02-23 00:23:03

+0

是的,我不完全清楚。它也適用於C++ 98。 – 2013-02-24 01:09:52

+0

@AndrewP:它在libstC++中已經存在了一段時間,但是不能保證存在於其他C++ 98庫中(例如,Microsoft從MSVC2010實現它)。 – 2013-02-24 21:55:18