Template-Methode in Nicht-Template-Klasse erzwingen

Ich versuche folgendes Verhalten / folgende Syntax / Verwendung dieser Klasse zu erreichen:

Data1 dataType1;
Data2 dataType2;

int intType;
float floatType;

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

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

Mein Ansatz wäre:

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 ) {}
};

Virtuelle Template-Methoden sind jedoch nicht möglich. Es wird auch keine eigentliche Basisklasse benötigt. Allerdings muss ich sicherstellen, dass einige Klassen eine (Template) 'method ()' implementiert haben.

Wie erzwinge ich, dass eine Klasse / Struktur ohne Vorlage eine Vorlagenmethode überschreibt?

EDIT: Dies ist mein aktuelles Layout:

struct Data0
{
    int someVar;

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

BEARBEITEN: In der aktuellen Version von C ++ (11) ist das von mir angestrebte Verhalten nicht möglich. Darüber hinaus sollte ich diesen Teil wirklich neu codieren, um dieses Problem zu vermeiden. Ich akzeptiere jedoch die einzige Antwort, danke für Ihre Zuneigung.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage