I have a templated class, CDerived:

template <typename TValue, typename TDraw, typename TEdit ...>
class CDerived : public CBase
{
TValue m_Value
public:

TValue& GetValue() const
{
return m_Value;
}

void Draw()
{
TDraw::Draw(thi s);
}

void Edit()
{
TEdit::Edit(thi s);...