Требования к именованным типам C++: BasicFormatter (с C++20)
BasicFormatter — это тип, абстрагирующий операции форматирования для заданного типа аргумента форматирования и типа символа. Специализации std::formatter должны удовлетворять требованиям BasicFormatter.
BasicFormatter является Formatter, если он может форматировать как константные, так и неконстантные аргументы.
Требования
Тип удовлетворяет требованиям BasicFormatter, если он является полурегулярным, то есть удовлетворяет следующим требованиям:
И, учитывая
-
Arg, тип аргумента форматирования -
CharT, тип символа -
BasicFormatter, тип BasicFormatter для типовArgиCharT -
OutputIt, тип LegacyOutputIterator -
f, значение типа (возможно, const)BasicFormatter -
g, значение типаBasicFormatter -
arg, lvalue типаArg -
ParseContext, псевдоним типаstd::basic_format_parse_context<CharT> -
FormatContext, псевдоним типаstd::basic_format_context<OutputIt, CharT> -
parse_ctx, lvalue типаParseContext -
format_ctx, lvalue типаFormatContext
| Выражение | Тип возврата | Семантика |
|---|---|---|
g.parse(parse_ctx) | ParseContext::iterator |
|
f.format(arg, format_ctx) | FormatContext::iterator |
|
- Это позволяет форматировщикам выводить осмысленные сообщения об ошибках.
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/named_req/BasicFormatter