std::formattable
Определён в заголовке <format> | ||
|---|---|---|
template< class T, class CharT > concept formattable = /* formattable_with */< std::remove_reference_t<T>, std::basic_format_context</* fmt_iter_for */<CharT>, CharT> >; | (1) | (начиная с C++23) |
| Вспомогательные шаблоны | ||
template< class CharT > using /* fmt_iter_for */ = /* unspecified */; | (2) | (только для пояснения*) |
template< class T, class Context,
class Formatter =
typename Context::template
formatter_type<std::remove_const_t<T>> >
concept /* formattable_with */ =
std::semiregular<Formatter> &&
requires (Formatter& f, const Formatter& cf, T&& t, Context fc,
std::basic_format_parse_context<
typename Context::char_type
> pc) {
{ f.parse(pc) } -> std::same_as<typename decltype(pc)::iterator>;
{ cf.format(t, fc) } -> std::same_as<typename Context::iterator>;
};
| (3) | (только для пояснения*) |
Концепт formattable определяет, что std::formatter<std::remove_cvref_t<T>,CharT> соответствует требованиям BasicFormatter и Formatter (если std::remove_reference_t<T> имеет квалификатор const).
Шаблон псевдонима, предназначенный только для пояснения, /* fmt_iter_for */ возвращает неспецифицированный тип, удовлетворяющий требованиям std::output_iterator<constCharT&>.
Отчёты об ошибках
Следующие отчёты об ошибках, изменяющие поведение, были ретроактивно применены к ранее опубликованным стандартам C++.
| Отчёт об ошибке | Применён к | Опубликованное поведение | Правильное поведение |
|---|---|---|---|
| LWG 3925 | C++23 | второй аргумент шаблона std::basic_format_context не был указан | указан |
См. также
|
(C++20) | определяет правила форматирования для заданного типа (шаблон класса) |
|
(C++20) | абстрагирует операции форматирования для заданного типа аргумента форматирования и типа символов (именованное требование) |
|
(C++20) | определяет функции, используемые библиотекой форматирования (именованное требование) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/utility/format/formattable