>>456
Base<C>::f の戻り型はC*にする必要があるの?
Interfaceを通して扱うのなら、Interface* でもいいのではと思った。