template <class Derived>
class CMMD
{
using est_method = typename Derived::est_method;
// within block direct for B-test, Linear time test
// but it is something else for child
};
class CQuadraticTimeMMD :: public CMMD<CQuadraticTimeMMD>
{
};
class CBTestMMD :: public CMMD<CBTestMMD >
{
};
class CLinearTimeMMD :: public CMMD<CLinearTimeMMD >
{
};
make the MMD class a template