2024/4/29(月)

cpprefjpを読み進めた。「テンプレート再帰回数の制限緩和」~「registerキーワードを非推奨化」まで。

テンプレート再帰回数の制限緩和

1024回も再帰OKであることが仕様上求められるらしい。そんな数許可されてたんだ。

テンプレートの右山カッコ

話は知ってたが、この変更前後両方でコンパイルが通りつつ挙動が変わるコードがあって面白い。よくひねり出したな。

テンプレートのエクスポート機能を削除

「C/C++プログラミングの迷信と誤解」でちらっと触れられていたので、エクスポートは知ってはいた。確かにあんまりまともに使われてないらしい話だったが、そんな実装に無視されてる規格ってあるんだ。

スレッドローカルストレージ

マルチスレッド関係なのであまり把握してないシリーズ。今一つユースケースが思い浮かんでいない。

コンパイル時アサート

前に知ったときに使い方があまりよく分からなかったが、C/C++のデバッグ技術をなんとなく理解してきたので今なら多少ピンとくる。デバッガによるデバッグやテストフレームワークなどによる自動テストの他に、C/C++ではアサートが結構重要な役目を果たしている。それを静的にやろうという話だ。

エイリアステンプレート

usingはもちろん知っているが、テンプレートに関連した動機があるとは知らなかった。

インライン名前空間

こんな機能があるとは知らなかった。あまり積極的に使うことがある気はしないが、ライブラリ整備側になればたまに便利かもしれない?

sizeof演算子にクラスの非静的メンバを、オブジェクトを作らずに指定できるようにする

これ出来なかったんだ。

registerキーワードを非推奨化

そもそもregisterキーワードを知らなかった。まあC/C++は低レイヤと言ってもレジスタ指定までするのは解釈違いなので妥当に思う。

Categories: