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