Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

のちのC++バージョンの言語仕様も確認するよう促す #1275

Open
faithandbrave opened this issue May 17, 2024 · 9 comments
Open
Labels

Comments

@faithandbrave
Copy link
Member

このあたりからの議論として、

  • 言語機能のすべてのページの冒頭に、関連項目をチェックするよう注意文章を記載する
  • 関連項目へのページ内リンクをする
  • ページタイトルの末尾に提案文書の番号を記載する

が対応内容としてあがっていました。

注意文章の案は以下:

「このページはC++11規格原稿に取り込まれた変更を解説しています」
「他の変更で上書きされている場合があるため関連項目を参照してください」

ページタイトルの案は以下:

符号付き整数型が2の補数表現であることを規定 [P1236R1]」

注意文章については、自動生成・自動更新できるようツールも整備したいですね。

@tshino
Copy link
Contributor

tshino commented May 18, 2024

注意文が少し分かりにくいと感じました。変更案を示しますが、私は用語や表現の厳密性などは判断できないので、叩き台として受け取ってもらえれば、と思います。

「C++11規格原稿に取り込まれた」は原稿が連続的に変更されて新しいC++バージョンが成り立っている背景を知らないと分かりにくいと思いました。
「C++11に採用された」くらいが良いかと思います。

「他の変更で上書きされている場合がある」の含意として、同じC++11規格内の他の提案文書が優先する場合もあるということでしたが、その点を明示的に表現に加えた方が親切かと思います。
上書きされるのはのちのC++バージョンの話だと暗黙に解釈するひとが多そうです。
「のちに採用された他の変更により実際のC++11およびそれ以降のC++規格はこのページの内容と異なっている場合がある」
でどうでしょう。長くなりましたが。

また、一つの言語規格について上書きされる関係にあるページがある場合は、どちらが優先するのかは明示されていますか?その点が読者からすると不安になるだろうと思いました。

@akinomyoga
Copy link
Member

「C++11規格原稿に取り込まれた」は原稿が連続的に変更されて新しいC++バージョンが成り立っている背景を知らないと分かりにくいと思いました。

なるほど

「C++11に採用された」くらいが良いかと思います。

一発で新しい C++ バージョンが出来上がると勘違いしている人がいたら、これは逆に混乱の元の気がします…。(C++11 に採用された) = (それで確定) と思うような気がします。

そもそもここでの "C++XX" って何を指しているのかと思うと規格として発行された (orされる予定の) 一つの言語仕様だと思うと、「C++11に採用された」という言明自体も C++ が一発で完成するということを暗示しているようで微妙な気がします。規格原稿に取り込まれた時点ではまだ発行されているわけではないし。飽くまで C++11 規格原稿に入っただけで。

規格原稿などの言葉を避けるとすれば、

「C++11の策定過程の途中で承認された」

とか、

「C++11に暫定的に取り込まれた」

とか (でも "暫定的" だと後で削除される予定にも感じられて微妙ですね)。或いは「規格原稿に対して変更が少しずつ適用されていく」という過程をその場で簡単に説明しても良いように思います。そもそもこの cpprefjp/lang/cppXX の中の構造自体が、その事実を知っていることを前提とした構造になっている気がするので、ちゃんと説明した方が親切なのではと思います。

「のちに採用された他の変更により実際のC++11およびそれ以降のC++規格はこのページの内容と異なっている場合がある」

賛成です (ただし敬体ですかね)。

また、一つの言語規格について上書きされる関係にあるページがある場合は、どちらが優先するのかは明示されていますか?その点が読者からすると不安になるだろうと思いました。

これは確かにそうですね。なんとなく関連記事の順序は時系列だろうと思っていましたが、別にそれが明示的に保証されているわけでもないですし、時系列だとしても当該記事が時系列的にどこに挿入されるのかわからなければ意味がないですね。

@faithandbrave
Copy link
Member Author

C++23までは確定した仕様であるという文章、C++26は暫定的な仕様であるという文章にするのでもよいかと思います。

@yumetodo
Copy link
Member

@akinomyoga

一発で新しい C++ バージョンが出来上がると勘違いしている人がいたら、これは逆に混乱の元の気がします…。(C++11 に採用された) = (それで確定) と思うような気がします。

Wikipediaでいうところの

Template:最新の出来事 - Wikipedia

こういうことを言っていますか?

それともdefect reportによって遡及適用されうる懸念のことを言っていますか?

@akinomyoga
Copy link
Member

一発で新しい C++ バージョンが出来上がると勘違いしている人がいたら、これは逆に混乱の元の気がします…。(C++11 に採用された) = (それで確定) と思うような気がします。

Wikipediaでいうところの

Template:最新の出来事 - Wikipedia

こういうことを言っていますか?

うーん。こういうこととはどういうことですか? こっちが勘違いしてるかもですけれど、今話しているのは今動いている C++2 6(?) だけではなくて、既に成立した C++11 ~ C++23 についても当てはまることです。

それともdefect reportによって遡及適用されうる懸念のことを言っていますか?

違いますね。

えっと。元々の @tshino さんのコメントの

「C++11規格原稿に取り込まれた」は原稿が連続的に変更されて新しいC++バージョンが成り立っている背景を知らないと分かりにくいと思いました。

のことです。

@yumetodo
Copy link
Member

あー読み違えてましたなるほど。すると時系列感がほしいですねと言いかけて、やっと

C++23までは確定した仕様であるという文章、C++26は暫定的な仕様であるという文章にするのでもよいかと思います。

が理解できました。

@faithandbrave
Copy link
Member Author

ラムダ式やconstexprは、同じ言語バージョンで複数の変更が入っている場合がありますね。
その際に、変更箇所がかぶる場合がある、というのが残ってる問題ですかね。

私が把握している範囲では、変更箇所がかぶる変更が入っている場合には、どちらのページもその言語バージョンの最新に合わせた構文・仕様で説明してるつもりではありますが、すべてを把握してるわけではないので明言がむずかしいところではあります。

@faithandbrave
Copy link
Member Author

ページの末尾に提案文書の番号を記載する件は、作業しやすいように別なタスクissueにしました。

@tshino
Copy link
Contributor

tshino commented Jun 12, 2024

私が把握している範囲では、変更箇所がかぶる変更が入っている場合には、どちらのページもその言語バージョンの最新に合わせた構文・仕様で説明してるつもりではありますが、すべてを把握してるわけではないので明言がむずかしいところではあります。

たしかに、読者視点では「その言語バージョンの最新に合わせた説明」の方が読みやすいと思うので、その方針が好きです。

理屈上は「いわばdiffとしての、提案文書の説明」という理解とは異なることになると思いますが、その点は本サイトのポリシーとして明確にしてあれば問題ないかと思います。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants