Rapperswil 委員会会議:旅行報告

これは私の最初の委員会会議でした.私は日曜の朝にJonaに到着しました, とても素敵で平和な郊外に素敵なAirBnBがあった隣の町.そこで、私たちは自然に C++ について話し始めました。会議は 6 日間続くことになり、最後まで毎時間、毎分 C++ について話しました。 /P>

私は論文を発表したり、メモを取ったりしていませんでしたが、この非常に負担の大きい週から立ち直るのに苦労しています。

それでも、それは素晴らしい、啓発的な経験でした!

最も重要なことは、私がほとんど知らなかったあらゆる分野で働いている多くのクールな人々に会うことができたことです。非常に反対の意見を持ち、セッション中に互いに強く反対し、それでも友達であり、後で飲みます。

何が「より良い」か、物事を進める最善の方法は何かについて非常に異なる意見があったかもしれませんが、そこにいる誰もが C++ をより良くすることに深く関心を持っていました。そして、その会議の後、委員会のメンバーが「より悪い妥協」をするという考えはあまり筋が通っていないと思います。ほとんどの場合、人々はユースケースや他の人々の視点を真摯に理解し、受け入れようとしていました.

また、良くも悪くも、部屋に誰がいるかが重要であることは明らかです。たとえば、02 はあまり好きではありませんでした。 それは金曜日に議論され、私の意見を「強く賛成」に変えたその1つのコメントがなければ、おそらく反対票を投じていただろう.私は間違いなくひどいフランス語訛りを負わせました。それについては申し訳ありません。

一貫性については、私が思っていた以上に議論されました。もちろん、一貫性とは何か、またあるべきものとは何かについて、人々は同じ定義を共有しているわけではありません。

私の頭の中はすでに少し曖昧で、Bryce はすでに reddit ですばらしい要約を作成していますが、その週に起こることをいくつか取り上げてみます。

もちろん、LEWG、EWG、Core、LWG が同時に会合し、他の SG も会合するため、一度にすべてを支援することはできません。多くの場合、多くのことが同時に発生するため、これは少し面倒です。控えめに言っても、スケジュールはあいまいで柔軟です (信じられないほど楽観的でもあります)。言葉遣いよりも新しいエキサイティングな機能に関心があるため、EWG と LEWG の間で時間を過ごすことにしました。論文を書かなければならないとき、これは私を苦しめます。

月曜日

素晴らしいスタートを切ったわけではありません。 16 を決定するのに 2 時間かかりました UB である必要があります。残念。私はビューが嫌いです。その後、フィーチャー マクロをワーキング ドラフトにマージすることを決定しました。これには非常に満足しています。それらは必要な場合は非常に便利で、必要がなくても害はありません.もちろん、モジュールのみの世界でそれがどのように機能するかはよくわかりませんが、うまくいけば何かが得られるまで、これは具体的な問題に答えます.

次に、初期化と集計を修正しました。集合体の定義を C++98 の規則に戻すことで、ごく一部を修正しただけです。

struct aggregate {};
aggregate a{};

struct not_aggregate {
 not_aggregate() = delete;
};
not_aggregate b{}; //ill formed


struct not_aggregate2 {
 not_aggregate2() = default;
 int a;
};
not_aggregate2 c{42}; //ill formed

小さな破壊的変更にもかかわらず、この変更が非常に好評だったことは興味深いことです。

競合する提案は複雑すぎると見なされていましたが、物事が単純化されているのを見て新鮮でした.

夕食後、私たちは概念構文について話しました…これは専用のブログ投稿を保証します、お楽しみに!

火曜日

午前中は EWG でモジュールについて話しました。ATOM 提案と TS 作成者からのコンジョイント提案について非常に建設的な朝でした。

パーティションの付加価値がまだ見えなくても、私は現状にほとんど満足しています.字句解析と前処理がますます混乱していることを心配していますが、解決策はツールでは使用できないようです.本当に願っています.彼らは C++20 に到達しました。残念ながら、午後はそこにいなかったので、マクロのエクスポートについて議論されたかどうかはわかりません。これは私の死体以上のことです.

私は代わりに LEWG で午後を過ごすことを選択し、そこで Ranges TS の 190 ページすべてに目を通す作業を行い、ワーキング ドラフトにマージされる前の次のステップである LWG に転送することにしました。

水曜日

私たちは、新しいデータ永続化研究グループの創設について議論し、十分な数の人々が、これが今後数か月以内に正式に行われる可能性があることに関心を持っていました.このグループは、非同期ファイルやメモリ マップ ファイルなどの低レベル I/O 機能の導入に焦点を当てます.

私はそれをテキストの書式設定から分離すべきであるという懸念を提起しましたが、人々は同意しているようです.したがって、この作業は 24 よりも健全な施設につながる可能性があります その上に、他の人が別の書式設定およびローカリゼーション機能を構築できます。愛してはいけないものはありません!

テキストのフォーマットについて言えば、Victor Zverovich は 32 の更新を発表しました。 これは、C++20 の時間枠で LEWG が注力すべき優先度の高い項目であると判断しました。これについては非常に満足しています。別の方法は、それを TS (ライブラリ拡張 v3) に送信することでした。WD にマージされていないすべての優れた inibraries 拡張 v2 を考えると、45 がないのではないかと心配していました。

57 の一部に行ってきました 話します。それは… 面白かったです。私はこの件について専門家の意見は持っていませんが、現在の TS はほとんどのユーザーにとって適切なレベルの抽象化であると思います。コア コルーチンは、どちらか一方の質問ではなく、将来のコルーチン実装のサブセットである可能性があるという指摘がなされました。

コルーチンは EWG でコンセンサスを得ましたが、土曜日にはコンセンサスに達しませんでした.

LEWG で、Eric Niebler は範囲に関する彼の「深い統合」の提案を発表し、多くの拍手喝采を浴びました。 イテレータと特性は 73 のままです 多くの複雑さと重複を回避します。81 も承認しました 、これは範囲とイテレータの小さいながらも非常にエキサイティングな改良です!

夕食後、Direction Working Group は p0939r0 の詳細なプレゼンテーションを行いました。 Bjarne は Vasa について話しました。

そのすべてからどのような教えが抽出されるのか、私はまだ確信が持てません。ヴァーサ号の物語は、さまざまな方法で解釈できます。これはすべて非常に複雑であり、正しい答えはないという点でほぼ一致しました。

TS の有用性と性質について議論しましたが、明確な結果は得られませんでした。

しかし、すべての優れた論文には理論的根拠、要約、引用、Tony テーブルが必要であるという合意に達しました.

私は入室した以上の質問をして部屋を後にしました。その週の後半に、論文を管理、検索、追跡するためのツールを改善することで WG21 が利益を得ることができるかどうかを何人かの人々に尋ねました。

(Currents ツールは、私の意見では、まったく満足のいくものではありません)

木曜日

木曜日は良い日でした。98 を作ることから始めました。 104 、それによって宇宙の秩序を回復します。完全に核兵器を配備すべきかどうかについて世論調査が行われましたが、残念ながらコンセンサスに達しませんでした。118 120 があります しかし、現実的には、すべての比較演算子を削除することが、私たちが期待できる最良の結果であると考えており、それに同意したことを本当に嬉しく思います.ありがとう、トニー。 次の会議でその考えを変えません。

133 を作る span unsigned はそれほど明確ではありませんでしたが、一般的なコンセンサスは、span を既存のコンテナと一致させ、署名付きコンテナに対するより一般的な解決策を見つけることでした.

Herb は静的例外の提案の一部を提示し、ほぼ満場一致で 140 は気にしないことにしました。

いくつかのセッションをスキップして、何人かの人々と依存関係管理について話し、頭を少し休ませようとしました.

夕食後、私たちは 2D グラフィックスについて長い会話をしました。私はその夜の実際の結果について少し混乱しており、Guy はすでに彼の観点から素晴らしい要約を行っていました.私はそれが死んだと思います、Jim.いいことだと思います。それにもかかわらず、私たちが本当に望んでいるのは、依存関係マネージャーであると全員が表明しました.

金曜日

スタックトレース ライブラリの提案はうまくいきました。とても興奮しています。それを行うためのライブラリはたくさんありますが、コンパイラにはもっとうまくやれる可能性があります。私を含め、多くの人にとって役立つと思います。 API は小さくてきれいです。C++20 IS に含まれることを期待しています。

LEWG はまた、私が存在することを知らなかったいくつかの初期化されていないメモリ アルゴリズムを範囲化します。 「Rangify all things」の時代に備えましょう。私は文句を言っていません.

153 について話していた EWG に戻りました。 そして 160 、どちらも群衆の支持を得ました。171 リフレクションと 186 に特に優れています .要するに 194 は常に constexpr です。

残念ながら、私たちは自転車屋の名前を得ることができませんでした. 203 の提案 拒否されました。最初は完全にばかげているように見えますが、より良い選択だと思います。 212 をハイジャックしなければよかったのに とても軽く。

もう少し 226 私が部屋にいない間に投票が行われました。委員会は 235 にするために取り組んでいます constexpr および値ベースの概念構文に向けて。あなたが私に尋ねるなら、それは素晴らしいことです!

残念ながら、249 私が部屋にいない間に議論されました。現在の形ではあまり愛されていないようです。そして、素晴らしい「形容詞」のような構文は、非常に残念なことに、反対されました。悲しい顔。少し違う形で戻ってくることを願っています。おそらく 254 に統合されます。

私はほとんど期待も希望も持たずにツーリング イブニング セッションに参加しました。

ボリスは 268 を提示しました その後、Titus は更新された長期的な目標についてプレゼンテーションを行いました。私が恐れていたほどまとまりがなく、私たちが目指すべき一般的な方向性については全員が一致しているようです。 )…そして、何らかの形の依存関係管理システムが絶対に必要です。CMake について肯定的なことは何も言われませんでした。それが始まりです!

279 の主な開発者との長い会話 確かに 289 を使いたくなる もっと。

待って見てくださいね?

土曜日

土曜日に公式投票を行いましたが、とてもうまくいきました!フランスの NB のメンバーとして投票しなければなりませんでしたが、反対したことは覚えていません.

しかし、コルーチン TS の統合に関する投票はうまくいかず、コンセンサスに達しませんでした。招集者は別の投票を行いましたが、今回は国ごとに 1 票でした。つまり、合計 11 票だったと思います。再びコンセンサスに達することができませんでした。 .

それが ISO プロセスの一部であることは知っていますが、特にほとんどの国が非常に小さな国家機関 (1 ~ 5 人) であることを考えると、そのようなことに「国」が関与することは本当に奇妙で壊れているように思えます。

他のシステムを除けば、これは最悪のシステムだと思いますか?

他のほとんどの動議は可決され、私はすべてに満足していると思います。これは、ワーキング グループによって行われた作業が、コンセンサスを集める機能を作成するのに非常に効果的であることを示しています.

ローンチ後、私は LEWG に戻り、さらにいくつかの論文をまとめました.しかし、その時までに私は本当に疲れ果てており、メモリアラインメントに関する 1 時間の長い議論は役に立ちませんでした.それでも、私たちは 291<が必要であることに同意しました. /コード> 見苦しいマクロと組み込み関数をすべて置き換える以外に何もない場合.

誰かが、文字列ビューを取る関数に右辺値参照文字列を渡すためのある種の有効期間の延長を持つ、非常に賢いが不敬虔な方法を提示しました。>

週の初めに、誰かが言語レベルの有効期間延長メカニズムを提示しました。これは、私にとってはより合理的なアプローチのように思えます.特に、範囲と右辺値参照がうまく連携しないことを考えると、C++ メモリ モデルのある種の Rustification は問題ありません。

その後、私たちはいくつかの論文について議論しましたが、私はそれをやめて、いくつかの非常に愚かなコメントをし始めました.定足数がなくなるまで、人々は次々と去りました.休会の時間です。

ユニコード

議長が欠席したため、SG16 は公式には開催されませんでしたが、私たちの半数が出席し、一部の論文は大きく前進しました (私はその驚くべき努力に関与していませんでした)。

帰り道

私はチューリッヒから帰らないという不幸な決断を下し、土曜日の夜、フランスの田舎の奥深くにいることに気づきました.公共交通機関を見つけることも、Uberを予約することもできませんでした.午前 5 時に空港まで車で送ってくれました。数時間後、家に着きました。残念ながら、LEWG は危険な場所なので、宿題を家に持ち帰りました。

私はソーセージがどのように作られているかを見なければなりませんでした。たとえそれの多くが確実に改善される可能性があるとしても (どういうわけか)、次の会議を楽しみにしています - おそらく私にとっては2019年のケルンになるでしょう.サンディエゴへ…

出会ったすべての人が素晴らしく、C++ の作成方法に新たな敬意を払うようになりました。

私は多くの恐怖と不安を抱えてラッパースウィルに行きました(ほとんどの場合、そこにいるにはあまりにも愚かなのではないかと恐れていました.とても満足のいく、前向きな経験です。

それではまた!