Aus dieser Antwort habe ich gelernt, dass wir in C++17 std::fstream mit einem UTF-8-Pfad über std::filesystem::u8path öffnen können. Aber in C++20 ist diese Funktion veraltet und wir sollten stattdessen const char8_t* an den Konstruktor std::filesystem::path übergeben.
Hier kommt das Problem: Obwohl wir (über reinterpret_cast) jeden Zeiger legal auf const char* konvertieren können, können wir dies nicht rückwärts tun: von const char* nach z.B. const char8_t* (es würde gegen strenge Aliasing-Regeln verstoßen). Wenn wir also über eine externe API verfügen, die eine char-basierte UTF-8-Darstellung des Dateinamens zurückgibt (z. B. aus einer in C geschriebenen Bibliothek), können wir den Zeiger nicht sicher in eine char8_t-basierte Darstellung konvertieren .
Wie sollen wir also eine solche char-basierte Ansicht von UTF-8-Strings in eine char8_t-basierte Ansicht davon konvertieren?
Aus dieser Antwort habe ich gelernt, dass wir in C++17 std::fstream mit einem UTF-8-Pfad über std::filesystem::u8path öffnen können. Aber in C++20 ist diese Funktion veraltet und wir sollten stattdessen const char8_t* an den Konstruktor std::filesystem::path übergeben.
Hier kommt das Problem: Obwohl wir (über reinterpret_cast) jeden Zeiger legal auf const char* konvertieren können, können wir dies nicht rückwärts tun: von const char* nach z.B. const char8_t* (es würde gegen strenge Aliasing-Regeln verstoßen). Wenn wir also über eine externe API verfügen, die eine char-basierte UTF-8-Darstellung des Dateinamens zurückgibt (z. B. aus einer in C geschriebenen Bibliothek), können wir den Zeiger nicht sicher in eine char8_t-basierte Darstellung konvertieren .
Wie sollen wir also eine solche char-basierte Ansicht von UTF-8-Strings in eine char8_t-basierte Ansicht davon konvertieren?
Ich möchte durch eine Zeichenfolge von Zeichen schauen und jeden herausziehen und jeder muss vom Typ const char* sein, damit ich sie an eine Funktion weitergeben kann. Hier ist ein Beispiel.
string...
Eine Alternative zur Protokollierung.Config.DictConfig (config)? Ich kann das Sonarqube -Qualitätstor aufgrund des folgenden Sonarqube -Fehlers nicht umgehen: logging.config.dictconfig (config):...
Ich lese aus einer JSON-Datendatei und lade sie in ein Wörterbuch. Es als Schlüssel:Wert wie unten.
1707195600000 :1, 1707282000000 :18, 1707368400000 :1, 1707454800000 :13, 1707714000000 :18,...