Принудительный метод шаблона в не шаблонном классе

Я пытаюсь добиться следующего поведения / синтаксиса / использования этого класса:

Data1 dataType1;
Data2 dataType2;

int intType;
float floatType;

dataType1.method( intType );
dataType1.method( floatType );

dataType2.method( intType );
dataType2.method( floatType );

Мой подход был бы такой:

struct CDataBase
{
    template< typename T > virtual void method( T type ) = 0;
};

struct CData1 : CDataBase
{
    template< typename T > void method( T type ) {}
};

struct CData2 : CDataBase
{
    template< typename T > void method( T type ) {}
};

Однако методы виртуальных шаблонов невозможны. Также нет необходимости в реальном базовом классе, однако я должен убедиться, что в некоторых классах реализован (template) 'method ()'.

Как заставить не шаблонный класс / структуру переопределить метод шаблона?

РЕДАКТИРОВАТЬ: Это мой фактический макет:

struct Data0
{
    int someVar;

    template< class T >
    void decode( T& type )
    {
        type.set( someVar );
    }
};

РЕДАКТИРОВАТЬ: в текущей версии C ++ (11) поведение, которое я пытаюсь достичь, невозможно. В дополнение к этому я должен действительно перекодировать эту часть, чтобы избежать этой проблемы. Тем не менее, я принимаю единственный ответ, спасибо за вашу поддержку.

Ответы на вопрос(1)

Ваш ответ на вопрос