C++ Vector als Template



  • Ja, da ist ein Strichpunkt zu viel.



  • interpretiert schrieb:

    Ja, da ist ein Strichpunkt zu viel.

    Manchmal komme ich mir vor, wie auf Alkohol 🤡

    Jetzt mal für Template-Anfänger diese Fehlermeldung?

    Welche Parameter habe ich diesmal vergessen?

    [Error] invalid use of template-name 'gauss' without an argument list
    


  • Warnung: Templates werden nicht in .h und .cpp aufgeteilt.



  • manni66 schrieb:

    Warnung: Templates werden nicht in .h und .cpp aufgeteilt.

    Werden größere Projekte nicht in h /cpp Dateien aufgeteilt ?

    Ist es nicht alleine wegen der Übersicht ein Pro Argument dafür?



  • NoName123 schrieb:

    Jetzt mal für Template-Anfänger diese Fehlermeldung?

    Welche Parameter habe ich diesmal vergessen?

    [Error] invalid use of template-name 'gauss' without an argument list
    
    gauss<int> g ;
    


  • Danke für die Antwort.

    Wie muss ich es Umschreiben, wenn ich mal einen Vector als double übergeben möchte und nicht für jeden Type (TEMPLATE!) alles doppelt und dreifah schreiben möchte?

    Danke



  • NoName123 schrieb:

    manni66 schrieb:

    Warnung: Templates werden nicht in .h und .cpp aufgeteilt.

    Werden größere Projekte nicht in h /cpp Dateien aufgeteilt ?

    Ist es nicht alleine wegen der Übersicht ein Pro Argument dafür?

    Für Templates geht das nicht, für alles andere ist es jedoch richtig.



  • NoName123 schrieb:

    Wie muss ich es Umschreiben, wenn ich mal einen Vector als double übergeben möchte und nicht für jeden Type (TEMPLATE!) alles doppelt und dreifah schreiben möchte?

    Die Frage verstehe ich nicht. Gauss benutzt nur T1. Mit gauss<double> erzeugst du einen Typ, der double an den Stellen verwendet, an denen T1 steht.



  • NoName123 schrieb:

    Wie muss ich es Umschreiben, wenn ich mal einen Vector als double übergeben möchte und nicht für jeden Type (TEMPLATE!) alles doppelt und dreifah schreiben möchte?

    template<typename T>
    void f(const std::vector<T>& ) {}
    


  • manni66 schrieb:

    Warnung: Templates werden nicht in .h und .cpp aufgeteilt.

    Das kann man durchaus machen, wenn die Menge der Typen, mit dem das Template instanziiert wird, bekannt und überschaubar ist. C++: keine Regel ohne Ausnahme 😉



  • Torsten Robitzki schrieb:

    C++: keine Regel ohne Ausnahme 😉

    Mit diesen Ausnahmen sollte man einen Anfänger aber nicht verwirren. Deswegen lass ich diese Ausnahmen in der Regel in meinen Antworten bewusst weg. Aber auch davon gibt es Ausnahmen 😉


Anmelden zum Antworten