cpp/utility/format: различия между версиями
Материал из cppreference.com
Olya (обсуждение | вклад) Нет описания правки |
Olya (обсуждение | вклад) Нет описания правки |
||
| Строка 48: | Строка 48: | ||
===Примечание=== | ===Примечание=== | ||
{{ftm begin| | {{ftm begin|=1}} | ||
{{ftm|__cpp_lib_format|std=C++20|value=201907L|rowspan=" | {{ftm|__cpp_lib_format|std=C++20|value=201907L|rowspan=""|Форматирование текста}} | ||
{{ftm|-|std=C++20|dr=1|value=202106L|Проверка строки формата во время компиляции;<br>Уменьшение параметризации {{lc|std::vformat_to}}}} | {{ftm|-|std=C++20|dr=1|value=202106L|Проверка строки формата во время компиляции;<br>Уменьшение параметризации {{lc|std::vformat_to}}}} | ||
{{ftm|-|std=C++20|dr=1|value=202110L|Исправление обработки локали в chrono форматтерах;<br>Поддержка неконстантных форматируемых типов }} | {{ftm|-|std=C++20|dr=1|value=202110L|Исправление обработки локали в chrono форматтерах;<br>Поддержка неконстантных форматируемых типов }} | ||
{{ftm|-|std=C++23|value=202207L|Раскрытие {{lc|std::basic_format_string}};<br>Уточняет обработку кодировок в локализованном форматировании хронотипов}} | {{ftm|-|std=C++23|value=202207L|Раскрытие {{lc|std::basic_format_string}};<br>Уточняет обработку кодировок в локализованном форматировании хронотипов}} | ||
{{ftm|__cpp_lib_format_ranges|std=C++23|value=202207L|Диапазоны форматирования}} | {{ftm|__cpp_lib_format_ranges|std=C++23|value=202207L|Диапазоны форматирования}} | ||
{{ftm end}} | {{ftm end}} | ||
Текущая версия от 10:16, 18 сентября 2023
Библиотека форматирования текста предлагает безопасную и расширяемую альтернативу семейству функций printf. Она предназначена для дополнения существующей библиотеки потоков ввода-вывода C++ и повторного использования некоторых элементов её инфраструктуры, таких как перегруженные операторы вставки для определяемых пользователем типов.
Запустить этот код
#include <format>
#include <cassert>
int main() {
std::string message = std::format("Ответ {}.", 42);
assert( message == "Ответ 42." );
}
Функции форматирования
Определены в заголовочном файле
<format> | |
(C++20) |
сохраняет форматированное представление аргументов в новой строке (шаблон функции) |
(C++20) |
записывает форматированное представление своих аргументов через итератор вывода (шаблон функции) |
(C++20) |
записывает форматированное представление своих аргументов через итератор вывода, не превышая заданного размера (шаблон функции) |
(C++20) |
определяет количество символов, необходимых для хранения форматированного представления его аргументов (шаблон функции) |
Концепты форматирования
Определены в заголовочном файле
<format> | |
(C++23) |
указывает, что тип является форматируемым, то есть он специализирует std::formatter и предоставляет функции-элементы parse и format (концепт) |
Поддержка расширяемости и детали реализации
Определены в заголовочном файле
<format> | |
(C++20) |
нешаблонный вариант std::format с использованием представления аргументов с удалением типа (функция) |
(C++20) |
нешаблонный вариант std::format_to с использованием представления аргументов с удалением типа (шаблон функции) |
(C++20)(C++20) |
создаёт объект с удалением типа, ссылающийся на все аргументы форматирования, конвертируемый в format_args (шаблон функции) |
(C++20) (устарело в C++26) |
интерфейс посещения аргументов для определяемых пользователем средств форматирования (шаблон функции) |
(C++20) |
шаблонный класс, который определяет правила форматирования для данного типа (шаблон класса) |