Пространства имён
Варианты
Действия

std::formattable

Материал из cppreference.com
 
 
Библиотека утилит
Языковая поддержка
Поддержка типов (базовые типы, RTTI)
Макросы тестирования функциональности библиотеки (C++20)    
Управление динамической памятью
Программные утилиты
Поддержка сопрограмм (C++20)
Вариативные функции
Трёхстороннее сравнение (C++20)
(C++20)
(C++20)(C++20)(C++20)(C++20)(C++20)(C++20)
Общие утилиты
Дата и время
Функциональные объекты
Библиотека форматирования (C++20)
(C++11)
Операторы отношения (устарело в C++20)
Целочисленные функции сравнения
(C++20)(C++20)(C++20)    
(C++20)
Операции обмена и типа
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Общие лексические типы
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
Элементарные преобразования строк
(C++17)
(C++17)
 
Библиотека форматирования
Функции форматирования
(C++20)
(C++20)
(C++20)
(C++20)
Концепты форматирования
Форматировщик
(C++20)
Аргументы форматирования
(C++20) (устарело в C++26)
Ошибка формата
 
<tbody> </tbody>
Определено в заголовочном файле <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 = /* неуказано */;
(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++20)
шаблонный класс, который определяет правила форматирования для данного типа
(шаблон класса) [править]
абстрагирует операции форматирования для данного типа аргумента форматирования и типа символа
(именованное требование)
(C++20)
определяет функции, используемые библиотекой форматирования
(именованное требование)