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<const CharT&>.
Сообщения об ошибках
Следующие сообщения об ошибках, изменяющие поведение, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Применено к | Поведение, как опубликовано | Правильное поведение |
|---|---|---|---|
| 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/w/cpp/utility/format/formattable