La classe 'n'est pas un type de modèle'

Que fait cette erreur signifie?

Generic.h:25: error: 'Generic' is not a template type

Ici est Générique.

template <class T>
class Generic: public QObject, public CFG, public virtual Evaluator {
    Q_OBJECT
    std::string key_;
    std::vector<std::string> layouts_;
    std::vector<std::string> static_widgets_;
    std::map<std::string, std::vector<widget_template> > widget_templates_;
    std::map<std::string, Widget *> widgets_;
    int type_;
    LCDWrapper *wrapper_;

    protected:
    LCDText *lcdText_;

    public:
    Generic(Json::Value *config, int type);
    ~Generic();
    void CFGSetup(std::string key);
    void BuildLayouts();
    void StartLayout();
    int GetType() { return type_; }
    //T *GetLCD() { return lcd_; }
    LCDText *GetLCDText() { return lcdText_; }
    virtual void Connect(){};
    virtual void SetupDevice(){};
    std::map<std::string, Widget *> Widgets();
    std::string CFG_Key();
    LCDWrapper *GetWrapper() { return wrapper_; }

};

Est le problème qu'il sous-classes autres classes? J'ai essayé une expérience d'essai de cette théorie, mais il n'a pas de produire cette erreur.

Edit: Ok, donc un couple de vous les gars l'a souligné, je pourrais être en avant de déclarer Générique ailleurs sans en faire un modèle de classe. C'est vrai. Et lorsque je fais un modèle, je reçois un autre message d'erreur.

De la propriété.h:15: erreur: ISO C++ forbids declaration of 'Générique' avec aucun type de

template <class T>
class Generic;

class Property : public CFG {
    Generic *visitor; //line 15
    bool is_valid;
    QScriptValue result;
    Json::Value *expression;
    public:
    Property(const Property &prop);
    Property(Generic *v, Json::Value *section, std::string name, Json::Value *defval);
    ~Property();
    bool Valid();
    int Eval();
    double P2N();
    int P2INT();
    std::string P2S();
    void SetValue(Json::Value val);
    Property operator=(Property prop);
};

source d'informationauteur Scott