site icon indicating copy to clipboard operation
site copied to clipboard

[C++26][言語機能] 契約プログラミング

Open faithandbrave opened this issue 9 months ago • 9 comments

/lang/future/contract-based_programming.mdを最新仕様に合わせて/lang/cpp26以下に持ってきてください

faithandbrave avatar Mar 26 '25 09:03 faithandbrave

こちらは、/lang/future/contract-based_programming.mdの方は削除してしまって良いのでしょうか?

rotarymars avatar Apr 20 '25 13:04 rotarymars

とりあえず新しく作ってみました。確認お願いします。

rotarymars avatar Apr 20 '25 13:04 rotarymars

対応ありがとうございます。

こちらは、/lang/future/contract-based_programming.mdの方は削除してしまって良いのでしょうか?

はい、削除してしまって大丈夫です。

仕様説明としてはかなり簡略化されてしまっているように思いますので、多くの追記が必要になるかと思います。 たとえば、以下のようなことを書いていく必要があります。

  • pre / postがoverrideなどと同格の文脈依存キーワードであるということ (変数名などに使ってもよい)
  • preに指定する条件式はパラメータを必ずしも使用しなくてもよいこと
  • postのresult-name-introducerが省略可能なものであり、戻り値を必ずしも使用しなくても、void clear() post(empty());のような指定が可能であるということ

また、ライブラリ側の対応も必要になります。

ill-formedなどの用語に対する訳語は、以下のページで「不適格」のように定めていますので、そちらも参照ください。 https://cpprefjp.github.io/working_style.html

faithandbrave avatar Apr 22 '25 02:04 faithandbrave

分かりました。 内容を追加しておきます。

rotarymars avatar Apr 22 '25 04:04 rotarymars

このような感じでいかがでしょうか?

rotarymars avatar Apr 23 '25 03:04 rotarymars

対応ありがとうございます。 私は提案文書をそれほど読み込めていないのであとで追記するかもしれませんが、一旦これでOKかと思います。

あとはライブラリ側も対応が必要ですが、それは別の人に任せるのでもだいじょうぶです

faithandbrave avatar Apr 23 '25 04:04 faithandbrave

できそうであればライブラリのほうも対応したいと考えています。

ライブラリは何か変更があるのでしょうか?

rotarymars avatar Apr 24 '25 23:04 rotarymars

細かくは見れてないですが、以前の提案で一時的に入ったライブラリとしては、まずヘッダファイル名が異なります。

<contract><contracts>に変更し、/reference.mdにヘッダファイルを掲載し、<contracts>ヘッダの言語バージョンをC++26に変更していく必要がまずあります。 そのうえで、ライブラリの中身についても以前の提案と異なるところは対応していくことになります。

faithandbrave avatar Apr 25 '25 01:04 faithandbrave

とりあえずいったん移しました。

rotarymars avatar Apr 25 '25 04:04 rotarymars