Spec-Zone.ru › C++

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 не был предоставлен предоставлен

См. также

formatter
(C++20)
определяет правила форматирования для данного типа
(шаблон класса)
BasicFormatter
(C++20)
абстрагирует операции форматирования для данного типа аргумента форматирования и типа символа
(именованное требование)
Formatter
(C++20)
определяет функции, используемые библиотекой форматирования
(именованное требование)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/utility/format/formattable

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API