本当に眠気がひどくて集中が効かないので、睡眠習慣の改善を試みる。
筋トレをした。今日は腕立て。
cpprefjpを読み進めた。モジュールは長いのでちょっと分けて読む。C++20はモジュール、コンセプト、コルーチンと自分の使いこなせていない大き目な機能が多い。
モジュール
本当にちゃんと使ってないので、cpprefjpよりも入門サイトとかから当たるべきな気もしている。
とりあえず「インターフェース/実装」「パーティション/パーティションでない」で4通りの何やら区分があるのを初めて知った。単純にモジュールに無制限の階層構造を持つか、あるいは逆に全てフラットで一切階層構造を持たないみたいなことではいけなかったのだろうか?
グローバルモジュールフラグメントはどういうことを想定しているのかよく分からなかったが、どうやら下記のブログ記事を見るに従来のヘッダファイル形式のライブラリとの連携性の観点から導入されたものらしい。
ポインタからbool
への変換を縮小変換とする
その変換が縮小変換じゃなかったら何が縮小変換なんだみたいな感じだ。しかしどうやらこの記述から察するに「どの変換なら許す」というのが規定されているくさい。その辺あんまりちゃんと知らないな。
ビットフィールドのメンバ変数初期化
あ~~これは出来て欲しいな~~と思いつつそもそもビットフィールドを使ってないぜ。
デフォルトのコピーコンストラクタと非constなコンストラクタが衝突する問題を修正
cons A&
を受け取るデフォルトのコピーコンストラクタは当然メンバ変数に対してもconst MemberType&
を受け取るコピーコンストラクタを呼ぶので、そこでMemberType&
を受け取るコピーコンストラクタしか定義されてないと死ぬ、というのが従来の問題らしい。で、コピーコンストラクトしないならエラーにしないという主旨のようだ。それはまあ確かに妥当だ。
スコープ付き列挙型のusing宣言
えーそれできちゃっていいのー、と思ったけどusing namespaceがあるのに今更だった。Cからの移植に役立つという意義もあるらしい。なるほどなあ。
Categories: 未分類