-std = c ++ 0x和-std = c ++ 11之间的区别是什么?

San*_*Kim 13 c++ eclipse c++11

我知道这些标志适用于Eclipse中的C++ 11.

但我不知道有什么区别,哪一个更受欢迎.

看起来他们都正常使用C++ 11.

Dan*_*rey 17

你应该更喜欢-std=c++11.

(注意:我假设-std=c++11x你的问题是拼写错误)

-std=c++0x只需要为不支持旧的编译器版本-std=c++11,他们选择了这个名字,以表达功能的初步和不稳定性(和ABI)当时即将举行的C++11(当它仍不清楚这是否会最终成为C++10C++12) .在C++ 11标准正式发布之前,它们改变了一些适应标准工作草案的细节.

如果您的编译器支持-std=c++11,则没有理由使用-std=c++0x.关于兼容性:甚至可能存在差异和不兼容性,但这些不仅仅与-std=c++0x编译器的特定版本的使用有关.当编译器支持两者时,它们应该是相同的.

  • 琐事:在SO上,C++ 11和C++ 0x的标签被合并,尽管@HowardHinnant是唯一同时拥有银色C++ 11和C++ 0x徽章的人!(这两个类别中有11人拥有青铜徽章) (3认同)