C++ enumにメンバ関数を定義したい 世間には既にこの要求が溢れていて、様々な提案がされている。 C++標準には提案されていない。 CRTPとDeducing thisについて学習をしていてこれを達成できないかと気になったので考えた。 結論としては達成できなかった。 enumは典型的にはswitchでの分岐かビットフラグとして使うと思う。 ここではswitchで使う方を想定する。 switchといえばstd::variantは型レベルの"switch"ができる。 型であればCRTPでインターフェースを要求してそれぞれの型にメンバ関数を要求できる。 #include <cstdio> #in…