std::basic_format_string, std::format_string, std::wformat_string — cppreference.com
Материал из cppreference.com
<tbody> </tbody>
| Определено в заголовочном файле |
||
|
|
(1) | (начиная с C++20) |
|
|
(2) | (начиная с C++20) |
|
|
(3) | (начиная с C++20) |
Шаблонный класс std::basic_format_string оборачивает std::basic_string_view и выполняет проверку строки формата во время компиляции во время создания.
Функции-элементы
создаёт basic_format_string, вызывая ошибку компиляции, если аргумент не является строкой формата (public функция-элемент) | |
| возвращает обёрнутую строку (public функция-элемент) |
std::basic_format_string::basic_format_string
<tbody> </tbody>
|
|
||
Создаёт объект basic_format_string, который хранит представление строки s. Если аргумент не является константой времени компиляции или его невозможно проанализировать как строку формата для типов аргументов форматирования Args, создание некорректно.
Эта перегрузка участвует в разрешении перегрузки, только если const T& моделирует std::convertible_to<std::basic_string_view<CharT>>.
Параметры
| s | — | объект, представляющий строку формата. Строка формата состоит из
Каждое поле замены имеет следующий формат:
1) поле замены без указания формата 2) поле замены со спецификацией формата
| ||||||||||||||||||||||||||||||||||||||||||
std::basic_format_string::get
<tbody> </tbody>
|
|
||
Возвращает сохранённое строковое представление.
Примечание
Шаблоны псевдонимы 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>. Аргументы выводятся из 1.0, 2 // Из-за использования type_identity_t в format_string при выводе // аргумента шаблона не учитывается тип строки формата.
Пример
Отчёты о дефектах
Следующие изменения поведения были применены с обратной силой к ранее опубликованным стандартам C++:
| Номер | Применён | Поведение в стандарте | Корректное поведение |
|---|---|---|---|
| WG не указан | C++20 | для этого средства нет видимого пользователем имени | представлено имя basic_format_string
|