C++ MIX #13に参加しました
2025/2/21に開催されたイベント C++ MIX #13にて、“サンプルコードによるC++23ジェネレータの紹介” というタイトルで20分ほど話す機会をいただきました。(5年5ヶ月ぶり4回目)
感想とか
C++23標準ライブラリに追加されたstd::generator
および関連機能を紹介しました。コルーチン機能は標準ライブラリ仕様記述から読み取れる情報だけでは不十分なことが多く、コードスニペットを用いた機能概要の解説を試みています。
std::generatorのボトムアップ的説明:まずはC++20 Coroutinesを(ほぼ)全部理解しましょう
— yoh (@yohhoy) 2022年12月30日
同トップダウン的説明:co_yield書いてみましょうからのテンプレートパラメータの選び方についてアレコレ https://t.co/MwE96jVCrY
C++23 std::generator標準入りでようやく普通のC++プログラマ向けのコルーチンが登場したのでZennあたりに紹介記事でも書いてみるかとも思ったけど blogとcpprefjpに既に書き下した内容とそう変わらない気もしてきて モチベーションが微妙
— yoh (@yohhoy) 2024年2月23日
C++コルーチン動作の落とし穴として紹介した “キャプチャ付きジェネレータコルーチン・ラムダ式” は、事前想定どおり最も理解されづらかったようです。スライドではC++ Core Guidelines紹介にとどめて簡易説明で済ませましたが、技術詳細は記事「コルーチン×ラムダ式キャプチャ=鼻から悪魔」を参照ください。