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/-definitionDas 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) { /* ... */ }
-
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/-definitionDas 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.