ゆなこんブログ

ゆなこんぴゅーたー (Yuna Computer) の公式ブログ

C++規格書の読み方

C++規格書の読み方

C++規格書をどのように調べ読んだらいいのか、非常に良い具体例がこちらの記事に書かれています。

きちんとした説明をするために

そもそもなんで規格書を調べるんでしょうか。 自分自身が正しい理解をするため。そして他人に正しい情報を伝えるためです。

ではきちんとした説明とは何でしょうか。

言うまでもありません。 言語仕様書です。 言語仕様書を引くのです。 言語仕様書がプログラミング言語を定義しています。 言語仕様書こそがプログラミング言語をプログラミング言語たらしめているといっても過言ではありません。 これを引いて説明できてこそC++プログラマと言えるでしょう。

なんとなく知ってる思ってるレベルのだと、きちんとした説明はできないので 一時ソースである規格を参照しましょう。

用語を抑える

一般的な用語のように思えて実はC++の(専門)用語ってことがあります。

C++の(専門)用語であれば、どこかに定義が書かれていますので、 索引を探したり、PDF内を検索したりするといいです。

name なんて普通の用語だと思ってしまいそうですが、そうでもなかったりします。 過去には use (used) という語が C++ の用語のように使われていたこともありました。 普通の用語である use と C++ 用語として使われる use を区別するために odr-use (odr-used)という用語が発明されたこともあります。

とにかく何が言いたいかというと、用語その定義は大事ということです。

ヤクの毛刈り

「ヤクの毛刈り (yak shaving)」という言葉をご存知でしょうか?

ヤクの毛刈りはものすごく大変らしいです。 なかなか終わらない大変な仕事のことをヤクの毛刈りといいます。 また、一つの答えを得たり結果を得たりするために、本質とは思えない多くのことを遠回りして行わなければならないことも言います。 仕事のための仕事と言い換えることができるかもしれません。

C++の変数を理解しよう - Qiita においても「変数 (variable)」について調べたいだけなのに、 declaration, name, object, storage さらに byte と数多くの定義を調べるはめになっています。 文法 (BNF) の世界に入り込むと、さらに深く潜っていく必要もあります。

どうしたらいいのでしょうか?

どうしようもありません。順番に調べるしかありません。 ヤクの毛刈りのように順番に調べていくのが規格書の読み方です。

調べたいことが章(あるいは節)にまとまって書かれていることもありますが、 結構あっちこっち調べなければならないことが多い気がします。

まとめ

C++規格書の調べ方; 「一つずつ順番に調べる」。