cpprefjp / site

cpprefjpサイトのMarkdownソース
https://cpprefjp.github.io/
368 stars 152 forks source link

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

Open faithandbrave opened 1 month ago

faithandbrave commented 1 month ago

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

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

注意文章の案は以下:

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

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

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

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

tshino commented 1 month ago

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

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

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

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

akinomyoga commented 1 month ago

「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 commented 1 month ago

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

yumetodo commented 1 month ago

@akinomyoga

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

Wikipediaでいうところの

Template:最新の出来事 - Wikipedia

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

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

akinomyoga commented 1 month ago

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

Wikipediaでいうところの

Template:最新の出来事 - Wikipedia

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

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

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

違いますね。

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

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

のことです。

yumetodo commented 1 month ago

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

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

が理解できました。

faithandbrave commented 3 weeks ago

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

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

faithandbrave commented 3 weeks ago

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

tshino commented 3 weeks ago

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

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

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

faithandbrave commented 3 weeks ago

ではそのあたりは編集方針に書くとして、その前提で案内の文面を考えましょう。

faithandbrave commented 1 week ago

@tshino こちら、たたき台の文章作成をお願いしてもよいでしょうか?

tshino commented 1 week ago

整理します。

というわけでこんな感じでしょうか。

このページはC++XXに採用された言語機能の変更を解説しています。
のちのC++規格でさらに変更される場合があるため関連項目を参照してください。

確定する前のC++バージョンの場合は少し修正が要りますね。

このページはC++XXに採用される見込みの言語機能の変更を解説しています。
のちのC++規格でさらに変更される場合があるため関連項目を参照してください。
faithandbrave commented 1 week ago

@tshino ありがとうございます。 私はこれで問題ないと思います。