Namensräume
Varianten
Aktionen

std::formatter<std::filesystem::path>

Von cppreference.com
< cpp‎ | filesystem‎ | path
 
 
 
 
Definiert in Header <filesystem>
template< class CharT >
struct formatter<std::filesystem::path, CharT>;
(seit C++26)

Die Template-Spezialisierung von std::formatter für die std::filesystem::path Klasse erlaubt es Benutzern, einen Pfadnamen mit Formatierungsfunktionen in seine textuelle Darstellung umzuwandeln. Diese Spezialisierung ist debug-enabled.

Inhalt

[edit] Formatangabe

Die Syntax der Formatangaben path-format-spec lautet

fill-and-align (optional) width (optional) ?(optional) g(optional)

fill-and-align und width haben die gleiche Bedeutung wie in der Standard-Formatangabe.

Die Option ? wird verwendet, um den Pfadnamen als escaped string zu formatieren.

Die Option g wird verwendet, um anzugeben, dass der Pfadname in der generischen Formatdarstellung vorliegt.

[edit] Memberfunktionen

set_debug_format
ermöglicht die Formatierung des Pfadnamens als escaped string
(öffentliche Memberfunktion)
parse
parst den Format-Spezifizierer gemäß path-format-spec
(öffentliche Memberfunktion)
format
schreibt die formatierte Ausgabe gemäß path-format-spec
(öffentliche Memberfunktion)

std::formatter<std::filesystem::path>::set_debug_format

constexpr void set_debug_format();

Ermöglicht dem aktuellen Objekt, Pfadnamen als escaped string zu formatieren.

std::formatter<std::filesystem::path>::parse

constexpr auto parse( std::basic_format_parse_context<CharT>& ctx )
    -> std::basic_format_parse_context<CharT>::iterator;

Parst die Format-Spezifizierer als path-format-spec und speichert die geparsten Spezifizierer im aktuellen Objekt.

Gibt einen Iterator nach dem Ende des path-format-spec zurück.

std::formatter<std::filesystem::path>::format

template< class FormatContext >

auto format( const std::filesystem::path& p, FormatContext& ctx ) const

    -> FormatContext::iterator;

Sei s p.generic<std::filesystem::path::value_type>(), wenn die Option g verwendet wird, andernfalls p.native(). Schreibt s in ctx.out() gemäß path-format-spec.

Für die Zeichen-Transkodierung des Pfadnamens

  • Der Pfadname wird von der nativen Kodierung für Weitzeichenstrings nach UTF-8 transkodiert, wobei maximale Teilteile von fehlerhaften Untersequenzen durch U+FFFD REPLACEMENT CHARACTER ersetzt werden, wenn
  • Andernfalls erfolgt keine Transkodierung, wenn std::is_same_v<typename path::value_type, CharT> true ist.
  • Andernfalls ist die Transkodierung implementierungsabhängig.

Gibt einen Iterator nach dem Ende des Ausgabe-Bereichs zurück.

[edit] Hinweise

Feature-Test-Makro Wert Std Feature
__cpp_lib_format_path 202403L (C++26) Formatierungsunterstützung für std::filesystem::path

[edit] Beispiel

[edit] Siehe auch

(C++20)
definiert Formatierungsregeln für einen gegebenen Typ
(Klassentemplate) [bearbeiten]