C++ named requirements: Formatter (since C++20)
From cppreference.net
Formatter 는 주어진 서식 인수 타입과 문자 타입에 대한 서식 작업을 추상화하는 타입입니다. 표준 라이브러리에서 제공하는 std::formatter 의 특수화들은 달리 명시되지 않는 한 Formatter 요구 사항을 충족해야 합니다.
Formatter
는 일반적으로 const 참조를 취하는
format
멤버 함수를 제공함으로써 const 및 non-const 인수 모두를 포맷할 수 있습니다.
요구사항
타입이 다음 조건을 만족하면 Formatter 를 만족합니다: BasicFormatter 를 만족하고, 다음 타입들과 값들이 주어졌을 때 아래 표에 표시된 표현식들이 유효하며 표시된 의미를 갖는 경우:
| 유형 | 정의 |
CharT
|
문자 유형 |
Arg
|
포맷팅 인자 유형 |
Formatter
|
Arg
및
CharT
유형에 대한
Formatter
유형
|
OutputIt
|
LegacyOutputIterator 유형 |
ParseCtx
|
std:: basic_format_parse_context < CharT > |
FmtCtx
|
std:: basic_format_context < OutputIt, CharT > |
| 값 | 정의 |
| f |
Formatter
유형의 (const 한정 가능한) 값
|
| arg |
Arg
유형의 lvalue
|
| t |
Arg
로 변환 가능한 (const 한정 가능한) 값
|
| parse_ctx |
다음 모든 조건을 만족하는
ParseCtx
유형의 lvalue:
|
| fmt_ctx |
FmtCtx
유형의 lvalue
|
| 표현식 | 반환 타입 | 의미론 |
|---|---|---|
| f. format ( t, fmt_ctx ) |
FmtCtx::iterator
|
|
| f. format ( arg, fmt_ctx ) |
FmtCtx::iterator
|
위와 동일하지만 arg 를 수정하지 않습니다. |
결함 보고서
다음 동작 변경 결함 보고서는 이전에 게시된 C++ 표준에 소급 적용되었습니다.
| DR | 적용 대상 | 게시된 동작 | 올바른 동작 |
|---|---|---|---|
| LWG 3892 | C++20 | format-spec 이 존재하지 않을 경우 pc. begin ( ) 의 값이 불명확했음 | 명확하게 규정됨 |