1.はじめに こんにちは。 C#にはシリアライザがあります。シリアライザを使うとクラスを一発で保存/回復でき、クラスのメンバ変数を追加したり削除したりしても保存/回復処理を修正しないで済みます。シリアライザを使えばロジックの開発に注力できるので本当にありがたいです。 C++にもboost::serializationやcerealがあります。でも、C#にはどうしても届かない部分があります。クラスのメンバ変数を保存/回復するシリアライズ関数を手で書かないといけない点です。例えば、メンバ変数を追加した時シリアライズ関数も修正しないと保存/回復されないので、テストで検出できるとは言え修正漏れが なかなか痛いです。 そこで、C++でもC#のような反映漏れしにくい方法はないか考えました。そして、Clang/LLVMのlibToolingと言う構文解析ライブラリに辿り着きました。これを使ってソース・コ