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