これらのフラグは 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
、コンパイラの特定のバージョンに限定されます。コンパイラが両方をサポートしている場合、それらは同一であるはずです。