-std=c++0x と -std=c++11 の違いは何ですか? 質問する

-std=c++0x と -std=c++11 の違いは何ですか? 質問する

これらのフラグは Eclipse の C++11 用であることはわかっています。

しかし、違いは何なのか、どちらがより好まれるのかはわかりません。

どちらも C++11 で正常に動作しているようです。

ベストアンサー1

を優先するべきです-std=c++11

(注:-std=c++11x質問にタイプミスがあると思われます)

old は、-std=c++0xをサポートしていない古いバージョンのコンパイラにのみ必要です-std=c++11。その名前は、当時予定されていた の機能 (および ABI) の暫定的で不安定な性質を表現するために選択されましたC++11(それが最終的に または になるかどうかはまだ不明でしたC++10) C++12。彼らは、C++11 標準が正式にリリースされる前の時点で、標準の変化する作業草案に適応して詳細の一部を変更しました。

コンパイラが をサポートしている場合-std=c++11、 を使用する理由はありません-std=c++0x。互換性について: 相違点や非互換性が存在する可能性もありますが、これらは の使用に限定されるものではなく-std=c++0x、コンパイラの特定のバージョンに限定されます。コンパイラが両方をサポートしている場合、それらは同一であるはずです。

おすすめ記事