Ich versuche, Wörter in cpp von einer Datei in eine andere zu kopieren, hier ist mein Code:
%Vor%So bekomme ich einen Kompilierungsfehler:
%Vor%in der Zeile von wo ich copy ()
rufeWenn ich die Konstruktion der Iteratoren zu den folgenden ändern, funktioniert es:
%Vor%Ich dachte, die Auswahl zwischen () und {} beim Initialisieren von Objekten in cpp ist nur eine Frage der Wahl, aber ich denke, ich liege falsch. Kann mir das jemand erklären?
Im ersten Codefragment wird die Zeile set<string> words(istream_iterator<string>(ifs), istream_iterator<string>())
als Deklaration einer Funktion words
analysiert, die zwei Parameter hat: istream_iterator<string> ifs
und ein unbenannter Parameter vom Typ istream_iterator<string>
und gibt eine set<string>
zurück. Deshalb gibt es einen Kompilierungsfehler. Der zweite kann nicht als Funktionsdeklaration geparst werden, also funktioniert es richtig.