Ich arbeite an Linux GCC-Umgebung, und ich muss Funktionsargumente, die Klassen mit Standardwerten sind, initialisieren. Wenn ich mit temporärer Instanz der Klasse zu tun, dass es einen Fehler wie diese macht: „Standardargument für [Funktionsargument] type [Klassennamen] hat zum Beispiel:.wie Funktionsargumente zu initialisieren, die Klassen mit Standardwert sind
void foo(std::wstring& str = std::wstring())
Fehler: Standardargument für ' std :: wstring & str‘hat Typ 'std :: wstring' PS dieser Code ohne Fehler kompiliert wird, oder eine Warnung mit VC++.
Wie kann ich den Standardwert initilize?
was wollen Sie erreichen? Für mich sieht es bedeutungslos aus, was du tust. – Simone
@Simone -dies ist wahrscheinlich eine Prüfung, um sowohl die Vorteile von Standardwerten als auch das Senden per Referenz zu erhalten. – rkellerm
Bindung an nicht-Const Referenzen ist nicht standardkonform, aber VC++ erlaubt es als Erweiterung AFAIK. –