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<constCharT&>.

Отчёты об ошибках

Следующие отчёты об ошибках, изменяющие поведение, были ретроактивно применены к ранее опубликованным стандартам C++.

Отчёт об ошибке Применён к Опубликованное поведение Правильное поведение
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/cpp/utility/format/formattable

Spec-Zone.ru

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