std:: basic_format_string, std:: format_string, std:: wformat_string
|
Определено в заголовочном файле
<format>
|
||
|
template
<
class
CharT,
class
...
Args
>
struct basic_format_string ; |
(1) | (начиная с C++20) |
|
template
<
class
...
Args
>
using
format_string
=
|
(2) | (начиная с C++20) |
|
template
<
class
...
Args
>
using
wformat_string
=
|
(3) | (начиная с C++20) |
Шаблон класса
std::basic_format_string
оборачивает
std::basic_string_view
, который будет использоваться функциями форматирования.
Конструктор
std::basic_format_string
выполняет проверки строки формата на этапе компиляции
если только аргумент конструктора не возвращается функцией
std::runtime_format
(since C++26)
.
Содержание |
Функции-члены
|
(constructor)
|
создает
basic_format_string
, вызывая ошибку компиляции если аргумент не является строкой формата
(public member function) |
|
get
|
возвращает обернутую строку
(public member function) |
std::basic_format_string:: basic_format_string
|
template
<
class
T
>
consteval basic_format_string ( const T & s ) ; |
(1) | |
|
basic_format_string
(
/* строка-формата времени выполнения */
<
CharT
>
s
)
noexcept
;
|
(2) | (начиная с C++26) |
basic_format_string
, который хранит представление строки
s
. Если аргумент не является константой времени компиляции, или если он не может быть разобран как строка формата для типов аргументов форматирования
Args
, конструкция является некорректной.
basic_format_string
, который сохраняет представление строки
s
, возвращаемое функцией
std::runtime_format
. При создании не выполняет проверки строки формата.
Параметры
| s | - |
объект, представляющий строку формата. Строка формата состоит из:
Каждое поле замены имеет следующий формат:
1)
поле замены без спецификации формата
2)
поле замены со спецификацией формата
|
||||||||||||||||||||||||||||||||||||||||||||||
std::basic_format_string:: get
|
constexpr
std::
basic_string_view
<
CharT
>
get
(
)
const
noexcept
;
|
||
Возвращает сохранённое строковое представление.
Примечания
Псевдонимы шаблонов
format_string
и
wformat_string
используют
std::type_identity_t
для подавления вывода аргументов шаблона. Обычно, когда они появляются в качестве параметра функции, их аргументы шаблона выводятся из других аргументов функции.
template<class... Args> std::string format(std::format_string<Args...> fmt, Args&&... args); auto s = format("{} {}", 1.0, 2); // Вызывает format<double, int>. Args выводятся из 1.0, 2 // Из-за использования type_identity_t в format_string, вывод аргументов шаблона // не учитывает тип строки формата.
Пример
|
Этот раздел не завершён
Причина: отсутствует пример |
Отчеты о дефектах
Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Применяется к | Поведение в опубликованной версии | Корректное поведение |
|---|---|---|---|
| P2508R1 | C++20 | отсутствует пользовательское имя для этого механизма |
имя
basic_format_string
становится доступным
|