Template, rekursive Funktion, nicht aufgelöstes externes Symbol?



  • Hallo,

    wenn ich folgende rekursive Funktion in der main.cpp über main() schreibe, funktioniert der Code.

    // speichert in m alle Möglichkeiten, k Elemente aus e auszuwählen ( e.size() über k )
    template< typename T >
    void k_aus_n( int k, vector< T > e, vector< vector< T > >& m )
    {
    	vector< T > c ;
    	k_aus_n< T >( k, e, m, 1, -1, c ) ;
    }
    
    template< typename T >
    static
    void k_aus_n( int k, vector< T > e, vector< vector< T > >& m, int s, int j, vector< T >& c )
    {
    	for ( int i = j + 1 ;  i < e.size() ;  ++i )
    	{
    		c.push_back( e.at( i ) ) ;
    
    		if ( s == k )
    			m.push_back( c ) ;
    		else
    			k_aus_n< T >( k, e, m, s + 1, i, c ) ;
    
    		c.pop_back() ;
    	}
    }
    

    Aber wenn ich die Funktionsköpfe in eine Header-Datei schreibe und den Code in die zugehörige .cpp-Datei, dann kriege ich den Fehler "nicht aufgelöstes externes Symbol", auch wenn ich die Header-Datei in die .cpp-Datei inkludiere.

    Weiss jemand, woran das liegen könnte?

    Danke,
    Thilo



  • FAQ Punkt 5.



  • Thilo87 schrieb:

    [...] auch wenn ich die Header-Datei in die .cpp-Datei inkludiere.

    Versuchs mal umgekehrt 😉



  • Achso. Danke 🙂


Anmelden zum Antworten