Explizite Instanzierung von Templates



  • Hallo,

    ich möchte in meinem Programm explizite Instanzierung von Templates verwenden. Ich habe also (unter anderem) die drei Dateien "base_tree.h"

    #ifndef BASE_TREE_H_
    #define BASE_TREE_H_
    
    ...
    
    template<class N, class C> class Base_Tree
    {
    	...
    };
    
    #endif
    

    mit der Definition des Klassentemplates Base_Tree, "base_tree_def.h"

    #ifndef BASE_TREE_DEF_H_
    #define BASE_TREE_DEF_H_
    
    #include "base_tree.h"
    
    ...
    
    template<class N, class C> Base_Tree<N, C>::Base_Tree(const int num_sites_para, const int num_mutation_rates)
    {
    	...
    }
    
    ...
    
    #endif
    

    mit der Definition der Methoden von Base_Tree, und "base_tree.cpp"

    #include "standard.h"
    
    #include "base_tree_def.h"
    
    using namespace std;
    
    class A {};
    
    template Base_Tree<A, A>;
    

    wo ich versuche Base_Tree explizit zu instanzieren.

    Als Fehlermeldung erhalte ich nun

    ../src/tree/base_tree.cpp:10: error: expected unqualified-id before ‘;’ token

    bezüglich der Zeile

    template Base_Tree<A, A>;
    

    Weiss jemand, was hier schief geht?



  • Vielleicht eher so?

    Base_Tree<A, A> ATree(0,0);
    //oder meinst Du sowas?
    template class Base_Tree<A, A>;
    


  • Versuchs mal mit

    template class Base_Tree<A,A>;
    

    PS: www.gidf.de - hat grademal 10 sekunden gedauert das rauszufinden...



  • pumuckl schrieb:

    Versuchs mal mit

    template class Base_Tree<A,A>;
    

    Danke, das war es.


Anmelden zum Antworten