std::filesystem::path::generic_string, std::filesystem::path::generic_wstring, std::filesystem::path::generic_u8string, std::filesystem::path::generic_u16string, std::filesystem::path::generic_u32string
Von cppreference.com
< cpp | filesystem | path
| template< class CharT, class Traits = std::char_traits<CharT>, class Alloc = std::allocator<CharT> > |
(1) | (seit C++17) |
| (2) | (seit C++17) | |
| std::string generic_string() const; |
||
| std::wstring generic_wstring() const; |
||
| std::u16string generic_u16string() const; |
||
| std::u32string generic_u32string() const; |
||
| (3) | ||
| std::string generic_u8string() const; |
(seit C++17) (bis C++20) |
|
| std::u8string generic_u8string() const; |
(seit C++20) | |
Gibt den internen Pfadnamen im generischen Pfadnamenformat zurück, konvertiert in den spezifischen String-Typ. Die Konvertierung, falls vorhanden, ist wie folgt spezifiziert
- Wenn
path::value_typechar ist, ist die Konvertierung, falls vorhanden, systemabhängig. Dies ist der Fall auf typischen POSIX-Systemen (wie Linux), wo die native Kodierung UTF-8 ist undstring()keine Konvertierung durchführt. - Andernfalls, wenn
path::value_typewchar_t ist, ist die Konvertierung, falls vorhanden, nicht spezifiziert. Dies ist der Fall unter Windows, wo wchar_t 16 Bit hat und die native Kodierung UTF-16 ist. - Andernfalls, wenn
path::value_typechar16_t ist, ist die native Kodierung UTF-16 und die Konvertierungsmethode ist nicht spezifiziert. - Andernfalls, wenn
path::value_typechar32_t ist, ist die native Kodierung UTF-32 und die Konvertierungsmethode ist nicht spezifiziert. - Andernfalls, wenn
path::value_typechar8_t ist, ist die native Kodierung UTF-8 und die Konvertierungsmethode ist nicht spezifiziert.
Das Zeichen / wird als Verzeichnistrennzeichen verwendet.
1) Alle Speicherallokationen werden von a durchgeführt.
3) Die Ergebnis-Kodierung im Falle von
u8string() ist immer UTF-8.Inhalt |
[bearbeiten] Parameter
| a | - | Allocator zum Konstruieren des Strings mit |
| Typanforderungen | ||
-CharT muss einer der kodierten Zeichentypen sein (char, wchar_t, char8_t(seit C++20), char16_t und char32_t). | ||
[bearbeiten] Rückgabewert
Der interne Pfadname im generischen Pfadnamenformat, konvertiert in den spezifizierten String-Typ.
[edit] Exceptions
Kann implementierungsdefinierte Ausnahmen auslösen.
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#include <cstddef> #include <filesystem> #include <iomanip> #include <iostream> #include <span> #include <string_view> void print(std::string_view rem, auto const& str) { std::cout << rem << std::hex << std::uppercase << std::setfill('0'); for (const auto b : std::as_bytes(std::span{str})) std::cout << std::setw(2) << std::to_integer<unsigned>(b) << ' '; std::cout << '\n'; } int main() { std::filesystem::path p{"/家/屋"}; std::cout << p << '\n'; print("string : ", p.generic_string()); print("u8string : ", p.generic_u8string()); print("u16string : ", p.generic_u16string()); print("u32string : ", p.generic_u32string()); print("wstring : ", p.generic_wstring()); }
Mögliche Ausgabe
"/家/屋" string : 2F E5 AE B6 2F E5 B1 8B u8string : 2F E5 AE B6 2F E5 B1 8B u16string : 2F 00 B6 5B 2F 00 4B 5C u32string : 2F 00 00 00 B6 5B 00 00 2F 00 00 00 4B 5C 00 00 wstring : 2F 00 00 00 B6 5B 00 00 2F 00 00 00 4B 5C 00 00
[bearbeiten] Siehe auch
| gibt den Pfad im nativen Pfadnamen-Format als String zurück (public member function) |