Help us understand the problem. What is going on with this article?

g++ (GCC) が対応している言語規格(std値) を確認する方法

サポートしている 言語規格一覧の確認

g++ -v --help 2>/dev/null | grep -E "^\s+\-std=.*$"

言語規格の指定方法

export CXXFLAGS="-std=gnu++98"

ABI互換性

どの言語規格を指定すればよいか

GCC(より具体的には、libstdc++)は、ABIの安定性を保証するために労を惜しみませんが、この保証はlibstdc++の中のC++のすべての部分に及ぶわけではありません。公式には、3.4以降のバージョンにおいて、GCC/libstdc++はC++98/C++03 ABIの安定性のみを保証し、それ以上ではありません。このことはC++11に依存するパッケージに関しては重大です。GCCはC++11 ABIの安定性の保証をバージョン5.1以降でのみ提供しています。これは、gccのバージョン(マイナーバージョンであっても)の変更(4.7.3 -> 4.7.4など)はC++11のコードからビルドされたバイナリにABI破壊をもたらす、ということを意味しています。

ということから、C++98 か C++03 、そしてGCC5.1以降では C++11 を指定することも良いようですね。

江添さんがC++11について本を出されたのは久しぶりのメジャーアップデートだったからなのでしょう。 本の虫: C++11参考書の公開:C++11の文法と機能

  • 昔は C++11 は C++0x と呼ばれていた。
  • C++14はC++11のマイナーアップデート。
  • C++17 は メジャーアップデート

なお C++11の文法と機能 について C++11: Syntax and Featureで読むことができる。

GCC 4.1 / GCC 5.1

そう、C++です、ほとんどの非互換はC++ ABIの中で生じるためです。もしあなたがGCC 4.1やGCC 5.1へアップグレードした場合、おそらくABIの問題に直面することになるでしょう。

これを防ぐには、GCC 3からGCC 4.1へのアップグレードの場合はlibstdc++.so.5に、GCC 4からGCC 5.1へのアップグレードの場合はlibstdc++.so.6に対して(略)

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした