2024/4/25(木)

ふとした拍子に失物が出てきた。うれしい。


なぜか度々Windows上で変換が2回しか効かなくなることがあって困っていたのだが、ちゃんと調べたらすぐに解決方法が出てきた。

https://ameblo.jp/countyourblessings-123/entry-12662601432.html

すぐ直った。しかし、結局この不具合は何なのだろうか?さすがに想定挙動とは思えない。新しいIME特有のバグみたいな話なのだろうか?記事の日付から見るに3年も放置されているようなのは少し腹が立つが。


cpprefjpを網羅的に読むことを始めた。「言語機能」を下から順に読む。今日は「非静的メンバ変数の初期化」から「戻り値の型を後置する関数宣言構文」まで。

非静的メンバ変数の初期化

今普通にできるやつはC++11からなんだなあと思った。

関数のdefault/delete宣言

defaultの意義をあんまりちゃんと知らなかったのでためになった。「inlineやvirtualといった修飾だけ使いつつ実装はデフォルトに任せたい」というケースの想定らしい。

継承コンストラクタ

これは初耳だった。まあ今どき継承自体をインターフェース的用途以外であまり使わないが。

範囲for文

まあ知っている機能だったが、後ろの方に書いてある細かい部分の状況はちょっと面白かった。

生文字列リテラル

一応知ってる機能だが、終了シーケンスが文字列であってもいいことやさらにそれに16文字という制限があることは初めて知った。

機能テストマクロ

なんだこりゃ?と思ったが、要するに機能が使えるかどうか#ifdefとかで調べるためのやつらしい。知らなんだ。

更新された定義済みマクロ

追加マクロでへえ~となった。

明示的な型変換演算子のオーバーロード

知ってるけど忘れがち。operator boolがあるとboolを介してintにまでなっちゃうというのは目から鱗だった。

文字列リテラルとワイド文字列リテラルの結合

初耳。文字列リテラルを並べれば静的に結合されるのは知ってたけどこんなことも出来たんだ…しかし意義が分からん。既にマクロとかでそういう形で定義されてるケース?どうやらC99との仕様の同期みたいな話もあるらしい。

整数に対する除算と剰余算の丸め結果を規定

真面目に仕様を知らなかったから勉強する契機になった。

  • (a/b)*b + a%b == aである
  • a/bの符号は普通の数学と同じに定義されている
  • a/bは0に近い方向に切り捨てられる

この3点を覚えておけばもう迷わない。

戻り値の型を後置する関数宣言構文

知ってるけど使ってない。複雑なテンプレートを使ってないのが大きい気がする。


今日摂取したコンテンツ。

https://note.com/schroneko/n/n8b1a5bbc740b

ローカルLLMの入門記事。その内試す。

https://zenn.dev/zach_leee/articles/36c3541f8ddaf5

昔なんなのかよく分からなかったやつ。

Categories: