静的ポリモーフィズム (CRTP) を使用する場合、ポリモーフィック メソッドに名前を付ける良い方法はありますか?
template <class Derived>
struct Base
{
void interface()
{
// ...
static_cast<Derived*>(this)->implementation();
// ...
}
static void static_func()
{
// ...
Derived::static_sub_func();
// ...
}
};
struct Derived : Base<Derived>
{
void implementation();
static void static_sub_func();
};
私の知る限り、インターフェイスと実装は同じ名前にすることはできません (それらが仮想である場合のように)。クラス階層が深い場合、それはちょっと厄介です。
何か良い対処法はないでしょうか?それとも私が間違っているだけですか?