Spec-Zone.ru › C++

C++ именованные требования: Formatter (с C++20)

Formatter — это тип, абстрагирующий операции форматирования для заданного типа аргумента форматирования и типа символа. Специализации std::formatter, предоставляемые стандартной библиотекой, должны удовлетворять требованиям Formatter, за исключением случаев, оговоренных отдельно.

Тип Formatter может форматировать как константные, так и неконстантные аргументы, обычно предоставляя функцию-член format, которая принимает константную ссылку.

Требования

Тип удовлетворяет требованиям Formatter, если удовлетворяет BasicFormatter и заданы

  • Arg, тип аргумента форматирования
  • CharT, тип символа
  • Formatter, тип Formatter для типов Arg и CharT
  • OutputIt, тип LegacyOutputIterator
  • f, значение типа (возможно, константного) Formatter
  • g, значение типа Formatter
  • arg, lvalue типа Arg
  • t, значение, преобразуемое в (возможно, константный) тип Arg
  • ParseContext, псевдоним типа std::basic_format_parse_context<CharT>
  • FormatContext, псевдоним типа std::basic_format_context<OutputIt, CharT>
  • parse_ctx, lvalue типа ParseContext
  • format_ctx, lvalue типа FormatContext
Выражение Тип возвращаемого значения Семантика
f.format(t, format_ctx) FormatContext::iterator
  • Форматирует t согласно спецификаторам, хранящимся в f, записывает результат в format_ctx.out() и возвращает конечный итератор диапазона вывода.
  • Вывод должен зависеть только от
    • t,
    • format_ctx.locale(),
    • диапазона [parse_ctx.begin(), parse_ctx.end()) с последнего вызова f.parse(parse_ctx), и
    • format_ctx.arg(n) для любого значения n типа std::size_t.
f.format(arg, format_ctx) FormatContext::iterator

Как выше, но не изменяет arg.

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

Spec-Zone.ru

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