Arbeiten mit Poco::Path
Ich habe einen sehr seltsamen Fehler gefunden. Siehe folgenden Code:Poco :: Pfad kompiliert mit const wchar_t * aber verhält sich unerwartet
#include <iostream>
#include <string>
#include <Poco/Path.h>
int main()
{
std::wstring a_path = L"c:\\temp";
//Poco::Path from_wstring(a_path); // ERROR: fails to compile, expected
Poco::Path from_wchar_t(a_path.c_str()); // compiles... unexpected
std::cout << from_wchar_t.toString() << std::endl;
return 0;
}
Aber die Ausgabe des obigen Programms ist (unter Windows):
\
statt der erwarteten:
c: \ temp
Überprüfung der Poco::Path
Dokumentation Ich sehe keinen Konstruktor erwartet std::wstring
(deshalb der erste Pfad fehlschlägt) noch const wchar_t*
, nur von std::string
und (beide UTF-8).
Wie kompiliert es mit const wchar_t*
und warum die unerwartete Ausgabe (falscher Pfad)?
Für die Zukunft: alle Schnittstellen POCO (außer, natürlich, die Umwandlung diejenigen) erwarte UTF-8-Strings. Alle Konvertierungen werden bei Bedarf intern erledigt. – Alex