Es gibt ein Projekt, das das Schreiben einer CSV-Datei erfordert, um Daten darzustellen. Auf Github gibt es eine einfache Lese- und Schreibbibliothek für CSV namens „minicsv“, also habe ich sie heruntergeladen. Beim Kompilieren des Beispiels traten jedoch folgende Probleme auf:
In Datei enthalten aus example.cpp:1:0:
minicsv.hpp: In Funktion
'csv::ofstream& Operator<<(csv::ofstream&, const
T&)':
minicsv.hpp:326:38: Fehler: Keine passende Funktion für Aufruf von
'csv::ofstream::escape_and_output(std::basic_ostringstream
ostm.escape_and_output(os_temp.str());
^
minicsv.hpp:326:38:
Hinweis: Kandidat ist:
minicsv.hpp:266:8: Hinweis: void
csv::ofstream::escape_and_output(std::string&)
void
escape_and_output(std::string & src)
...
Es gibt viele Fehler, daher werde ich sie nicht mehr posten und Platz beanspruchen. Diese Fehler stammen alle aus demselben Funktionsheader. Der Funktionsheader ist wie folgt definiert:
void escape_and_output(std::string & src)
Und der Aufruf sieht so aus:
ostm.escape_and_output(os_temp.str());
Offensichtlich ist der Funktionsheader beim Aufruf erforderlich. Die R-Wert-Referenz , und die durch den echten Funktionsheader angegebene L-Wert-Referenz stimmen nicht überein, sodass der Compiler einen Fehler meldet. Die Änderung ist sehr einfach, ändern Sie einfach „&“ in „&“, das heißt, ändern Sie den Funktionsheader so, dass er wie folgt aussieht:
void escape_and_output(std::string &
src)
Der Fehler ist sehr offensichtlich. Ich wollte ihn zunächst nicht aufschreiben, hatte aber Angst, dass Leute, die mit c++0x nicht vertraut sind, ratlos sein würden, also habe ich ihn gepostet. Außerdem weiß ich nicht, warum das Projekt einen so offensichtlichen Fehler aufweist – vielleicht ist der Compiler des Chefs zu schlau.
Weitere verwandte Artikel finden Sie auf der chinesischen PHP-Website (m.sbmmt.com)!