std:: runtime_format
|
Défini dans l'en-tête
<format>
|
||
|
/*runtime-format-string*/
<
char
>
runtime_format
(
std::
string_view
fmt
)
noexcept
;
|
(1) | (depuis C++26) |
|
/*runtime-format-string*/
<
wchar_t
>
runtime_format
(
std::
wstring_view
fmt
)
noexcept
;
|
(2) | (depuis C++26) |
Retourne un objet qui stocke une chaîne de format d'exécution directement utilisable dans les fonctions de formatage orientées utilisateur et peut être implicitement converti en
std::basic_format_string
.
Table des matières |
Paramètres
| fmt | - | une vue de chaîne |
Valeur de retour
Un objet contenant la chaîne de format d'exécution du type à usage d'exposition uniquement :
Modèle de classe
runtime-format-string
<CharT>
|
template
<
class
CharT
>
struct /*runtime-format-string*/ ; |
( exposition uniquement* ) | |
Membres de données
L'objet retourné contient un membre de données non statique d'exposition uniquement
str
de type
std::basic_string_view<CharT>
.
Constructeurs et assignations
|
/*runtime-format-string*/
(
std::
basic_string_view
<
CharT
>
s
)
noexcept
;
|
(1) | |
|
/*runtime-format-string*/
(
const
/*runtime-format-string*/
&
)
=
delete
;
|
(2) | |
|
/*runtime-format-string*/
&
operator
=
(
const
/*runtime-format-string*/
&
)
=
delete
;
|
(3) | |
str
avec
s
.
Notes
Puisque le type de retour de
runtime_format
n'est ni copiable ni déplaçable, une tentative de passer
runtime_fmt
en tant que glvalue inhibe la construction de
std::basic_format_string
ce qui rend le programme mal formé. Pour construire
std::basic_format_string
avec
runtime_format
, la valeur retournée de
runtime_format
est passée directement à
std::basic_format_string
en tant que prvalue où l'élision de copie est garantie.
auto runtime_fmt = std::runtime_format("{}"); auto s0 = std::format(runtime_fmt, 1); // erreur auto s1 = std::format(std::move(runtime_fmt), 1); // toujours erreur auto s2 = std::format(std::runtime_format("{}"), 1); // correct
| Macro de test de fonctionnalité | Valeur | Std | Fonctionnalité |
|---|---|---|---|
__cpp_lib_format
|
202311L
|
(C++26) | Chaînes de formatage à l'exécution |
Exemple
#include <format> #include <print> #include <string> #include <string_view> int main() { std::print("Hello {}!\n", "world"); std::string fmt; for (int i{}; i != 3; ++i) { fmt += "{} "; // construit la chaîne de formatage std::print("{} : ", fmt); std::println(std::runtime_format(fmt), "alpha", 'Z', 3.14, "unused"); } }
Sortie :
Hello world!
{} : alpha
{} {} : alpha Z
{} {} {} : alpha Z 3.14
Voir aussi
|
(C++20)
|
stocke la représentation formatée des arguments dans une nouvelle chaîne
(modèle de fonction) |
|
(C++20)
|
variante non-template de
std::format
utilisant une représentation d'arguments avec effacement de type
(fonction) |
|
(C++20)
(C++20)
(C++20)
|
modèle de classe qui effectue des vérifications de chaîne de format à la compilation lors de la construction
(modèle de classe) |