ASAHIネット(
[URL] )のjouwa/salonから。
---
次の記事を読むと、おそらくほぼこれがC++20に入りそうですね。
[URL]
2019-02 Kona ISO C++ Committee Trip Report (C++20 design is complete; Modules in C++20; Coroutines in C++20; Reflection TS v1 published; work begins on a C++ Ecosystem Technical Report)
C++20の概要は、こちらにもある。
[URL]
C++20
cpprefjp - C++日本語リファレンス
高橋晶さんをはじめ、「cpprefjp - C++日本語リファレンス」を編集している方々には、ほんと感謝してもしきれない。ありがとうございます。
上記、報告書「Kona ISO C++ Committee Trip Report」で注目したもの。
・Contract
ぼくが知る限り、契約プログラミング(Programming By Contract)、あるいは、契約による設計(Design By Contract)のための機能をコンパイラの言語仕様で入れたのは、Eiffelが最初。
C++20は、コンパイラの言語仕様ではなく、ライブラリによる実装の標準化。
[URL]契約プログラミング
・Ranges
Rangesは、Range-V3が評判だったRangesを正式に取り込んだ。
関数型プログラミング、少なくとも、そのイディオムの使用が、ますますやりやすくなった。
[URL]
Range-v3
にある利用例をみると、関数型言語によるメソッドチェーンの記述か、Unixのshellでやる、パイプを使ってフィルタの連続的につなぐやり方にしかみえない。
ただ、Microsft(MS)のVisual StudioのC++コンパイラは、少なくとも去年の5月くらいでは、Range-V3がそのままコンパイルできなかった。それで、MSはコンパイルできるように手直しをしたものを、自分たちで配っていた。それくらい人気のあるライブラリだったということでしょう。
・constexpr, consteval
constexprtつけまくりになり、constevalまで入ってコンパイル時計算島倉千代子\(^O^)/
改めて探さないけれど、以前、constexpr島倉千代子で、コンパイル時にマンデルブロ集合を計算するコードを書けるライブラリがあった。
作ったのは日本人だったと記憶している。(いい意味)でやりすぎよ。\(^O^)/
昔、まだ16bit PCのころには、マンデルブロ集合の計算をやって、きれいなグラフィックを表示するのが流行ったことがある。でも、この計算は、時間がかかるんだよね。
コンパイル時計算だと、コンパイルには、めっちゃ時間がかかるけど、結果を得るのは、一瞬よ。\(^O^)/
コンパイル時に時間がかかっても、実行時にスピードが上がるならやるというのが、Modern C++の方針だったが、C++20でconstevalまで入れて、完全にその方向に開き直ったね。\(^O^)/
やっぱり、探してみた。
スライドがあった。
ライブラリの名前はSproutだ。Sprout C++ Library (constexpr ライブラリ)
そうそう、コンパイル時レイトレーシングだ。
作ったのは、村上 原野 (むらかみ げんや) さん。
とんでもないなあ。
[URL]
すごい constexpr たのしくレイトレ!
村上さんは、岡山だって。じゃ、情報省のスパイ\(^O^)/
なぜか。あまりに、おれが、九州、山口、沖縄出身者が、各界を席巻しているし、国会開催中や安倍ちゃん(安倍晋三首相)がヤバそうなとき、九州、山口、沖縄の話題が全国ニュースになり、安倍ちゃんへの報道が減るように、情報省が情報爆発攻撃、情報洪水攻撃をしかけていると指摘してきたせいか、去年くらいから、岡山のネタを出すことが多くなってるんです。
なぜ、岡山か。岡山の情報省トップ、中村正三郎の親戚が多いから。\(^O^)/
関連:
[URL]
セコメントをする