Syntaxerror bei Template



  • template <class Container, typename DataType>
    std::wstring random_string(int length, Container<DataType> &letters) 
    {
    	/* ... */
    }
    

    Dieser Code gibt mir folgende Fehler:

    Fehler	1	error C2143: Syntaxfehler: Es fehlt ')' vor '<'	
    Fehler	2	error C2143: Syntaxfehler: Es fehlt ';' vor '<'
    Fehler	3	error C2988: Unerkannte Vorlagendeklaration/-definition
    

    Das geht dann noch munter weiter, nur wieso? Welchen Fehler mache ich?



  • template <template<class> class Container, typename DataType>
    std::wstring random_string(int length, Container<DataType> &letters)
    {
      /* ... */
    }
    

  • Mod

    template template class schrieb:

    template <template<class> class Container, typename DataType>
    std::wstring random_string(int length, Container<DataType> &letters)
    {
      /* ... */
    }
    

    So geht das, jedoch habe ich irgendwie das Gefühl, dass der Threadersteller dies nicht sucht. Vor allem würde es (so wie es jetzt ist) nicht mit STL-Containern funktionieren. Vermutlich ist eher dies gesucht:

    template <class Container>
    std::wstring random_string(int length, Container const &letters)
    

    oder

    template <class Iterator>
    std::wstring random_string(int length, Iterator letters_begin, Iterator letters_end)
    


  • syntaxerror1 schrieb:

    template <class Container, typename DataType>
    std::wstring random_string(int length, Container<DataType> &letters)
    

    Dieser Code gibt mir folgende Fehler:

    Fehler	1	error C2143: Syntaxfehler: Es fehlt ')' vor '<'	
    Fehler	2	error C2143: Syntaxfehler: Es fehlt ';' vor '<'
    Fehler	3	error C2988: Unerkannte Vorlagendeklaration/-definition
    

    Das geht dann noch munter weiter, nur wieso? Welchen Fehler mache ich?

    Du verwendest Container in der 2. Zeile als wäre es ein Klassen-Template, sagst in der ersten Zeile mit "class" aber, dass es ein Typ ist. Lass das DataType Zeug einfach weg.


Anmelden zum Antworten