web-dev-qa-db-ja.com

gccコンパイルオプションstd = c ++ 1yとstd = c ++ 14の違い

Gcc 4.9.2をインストールしました。次のコマンドを使用してプログラムをコンパイルしました。

/root/gcc-4.9.2/bin/g++ -std=c++1y testing.cpp

オプション-std=c++1yに加えて、別のオプション-std=c++14があることに注意してください。コンパイラーは同じように機能し、両方のオプションに対してまったく同じ実行可能ファイルを生成しますか?

22
ysrhung

C++ 14は最新のISO標準であり、gccの非標準機能が必要でない限り使用する必要があります。

c++1yは、完成する前にc ++ 14標準を参照するために使用された名前であるため、標準のドラフトに準拠している可能性が高く、実際の標準自体には準拠していません。 2つの間に若干の違いがあるかもしれませんが、c++14はISO標準です。

つまり、c++14

32
Matt

あなたが言及したgcc 4.9.2の場合、c++14c++1yの間に違いはありません。しかし、以前のgccバージョンでは、 gcc 4.8.1があります no c++14オプション

g++: error: unrecognized command line option '-std=c++14'

標準承認の年はまだ知られていないからです。そのような場合、-std=c++1yオプションの使用は ソリューションのみ で、今後のc ++ 14標準の一部を有効にします。

4