std::basic_format_string, std::format_string, std::wformat_string
| Definiert in Header <format> |
||
| template< class CharT, class... Args > struct basic_format_string; |
(1) | (seit C++20) |
| template< class... Args > using format_string = |
(2) | (seit C++20) |
| template< class... Args > using wformat_string = |
(3) | (seit C++20) |
Die Klassenschablone std::basic_format_string umschließt eine std::basic_string_view, die von Formatierungsfunktionen verwendet wird.
Der Konstruktor von std::basic_format_string führt Format-String-Prüfungen zur Kompilierungszeit durch es sei denn, das Konstruktorargument wird von std::runtime_format zurückgegeben(seit C++26).
Inhalt |
[edit] Member functions
| (Konstruktor) |
konstruiert einen basic_format_string, löst bei nicht-format-String-Argument einen Kompilierungsfehler aus(öffentliche Memberfunktion) |
| get |
gibt den umschlossenen String zurück (öffentliche Memberfunktion) |
std::basic_format_string::basic_format_string
| template< class T > consteval basic_format_string( const T& s ); |
(1) | |
| basic_format_string( /* runtime-format-string */<CharT> s ) noexcept; |
(2) | (seit C++26) |
basic_format_string-Objekt, das eine Ansicht des Strings s speichert. Wenn das Argument keine zur Kompilierungszeit konstante ist oder wenn es nicht als Format-String für die Formatierungsargumenttypen Args geparst werden kann, ist die Konstruktion fehlerhaft.basic_format_string-Objekt, das eine Ansicht des Strings s speichert, wie von std::runtime_format zurückgegeben. Es führt keine Format-String-Prüfungen bei der Konstruktion durch.Parameter
| s | - | ein Objekt, das den Formatstring repräsentiert. Der Formatstring besteht aus
Jedes Ersetzungsfeld hat das folgende Format:
1) Ersetzungsfeld ohne Formatangabe
2) Ersetzungsfeld mit Formatangabe
| ||||||||||||||||||||||||||||||||||||||||||||||
std::basic_format_string::get
| constexpr std::basic_string_view<CharT> get() const noexcept; |
||
Gibt die gespeicherte String-Ansicht zurück.
[edit] Hinweise
Die Alias-Schablonen format_string und wformat_string verwenden std::type_identity_t, um die Schablonenargumentableitung zu verhindern. Typischerweise werden, wenn sie als Funktionsparameter auftreten, ihre Schablonenargumente aus anderen Funktionsargumenten abgeleitet.
template<class... Args> std::string format(std::format_string<Args...> fmt, Args&&... args); auto s = format("{} {}", 1.0, 2); // Calls format<double, int>. Args are deduced from 1.0, 2 // Due to the use of type_identity_t in format_string, template argument deduction // does not consider the type of the format string.
[edit] Beispiel
| Dieser Abschnitt ist unvollständig Grund: kein Beispiel |
[edit] Defect reports
Die folgenden Verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | angewendet auf | Verhalten wie veröffentlicht | Korrigiertes Verhalten |
|---|---|---|---|
| P2508R1 | C++20 | Es gibt keinen benutzerseitig sichtbaren Namen für diese Einrichtung | Der Name basic_format_string wird verfügbar gemacht |