ExerciseC++読書会 vol.7
#ExerciseC++
https://scrapbox.io/files/6983353470707df9ae4835e5.png
開催日時
2026年5月26日(火) 19:30~21:00
開催URL
https://cpp-osaka.connpass.com/event/393215/
参加人数
3人
ウォーミングアップ
パズル15
code: cpp
1 // ←間違い
atomicを書かなくても8byteまでなら内部的にはアトミックな処理になっている
PowerPCのLoad Storeはちょっと事情が異なるらしい
この辺うかつなことを書くと警察がやってくるセンシティブな話らしい
リンカのドキュメントを読んでいるとPowerPCの場合だけ特別扱いしていた
PowerPC専用オプションがあった
asyncの実行ポリシーがdeferredだったら?
https://cpprefjp.github.io/reference/future/async.html
同じスレッドで実行されるなら未定義動作ではなく1を返すのが正解になりそう
atomicがロックフリーではないケース
そもそも専用の命令を持っていないケース
アトミックでは処理できないサイズの変更
ThreadSanitizer
スレッドが作成された場所へのスタックトレースまで表示されるの便利
Tさん
C++20でatomic_refが追加された
https://cpprefjp.github.io/reference/atomic/atomic_ref.html
非atomicな変数を一部分のみatomicにする参照
CPU的にはatomic_ref経由でアクセスした場合にatomic命令が呼ばれるようになる
https://cpprefjp.github.io/lang/cpp17/selection_statements_with_initializer.html
変数宣言自体はC++03のころから出来ていたはず
知らなかった・・・
セミコロンで条件判定できるようになったのがC++17から
変数宣言以外にも関数宣言もできる
decltypeで型を調べて黒魔術のトリックのネタとしていた
今何番目みたいなスタック的使い方ができた
ネストした分だけ標準出力にタブを加えるとか出来そう
昔作ったケース
今のスコープを識別
switchをマクロラッピング
入れ子のswitchケース
内側のswitchに入るたびに検知してお知らせする
ネストするたびにクラスのサイズを1ずつ増やしていって判別
このケース通ったよとかがわかる
パズル16
次回ここから
お悩み雑談室