format_basic_format_context
format_basic_format_context (basic_format_context 한국어 레퍼런스)
이 페이지는 C++20에서 도입된 std::basic_format_context 타입에 대해 설명해요. 이 타입은 서식 지정 인자들과 출력 반복자로 구성된 서식 지정 상태에 접근할 수 있게 해주는 핵심 구성 요소예요. std::format 계열 함수 내부에서 서식 지정을 수행할 때 필요한 모든 정보를 담고 있답니다.
출처: cppreference
본문
개요
<format> 헤더에 정의되어 있어요.
template < class OutputIt , class CharT > class basic_format_context ;
(1) — C++20부터
using format_context = basic_format_context < /* unspecified */ , char > ;
(2) — C++20부터
using wformat_context = basic_format_context < /* unspecified */ , wchar_t > ;
(3) — C++20부터
이 클래스는 서식 지정 인자들과 출력 반복자로 구성된 서식 지정 상태에 접근할 수 있게 해줘요.
OutputIt이 std::output_iterator<const CharT&> 모델을 만족하지 않으면 동작이 정의되지 않아요.
std::basic_format_context의 명시적 또는 부분 특수화를 선언하는 프로그램은 진단이 필요 없는 ill-formed예요.
std::basic_format_context 객체는 구현에 의해서만 생성될 수 있어요. 사용자 코드는 std::formatter 특수화의 format 함수를 통해서만 형식 컨텍스트를 수정할 수 있어요.
멤버 타입
| 타입 | 정의 |
|---|---|
iterator |
OutputIt |
char_type |
CharT |
멤버 별칭 템플릿
| 타입 | 정의 |
|---|---|
formatter_type<T> |
std::formatter<T, CharT> |
멤버 함수
| 함수 | 설명 |
|---|---|
(constructor) [deleted] |
basic_format_context는 사용자 코드로 생성할 수 없어요 (공개 멤버 함수) |
operator= [deleted] |
basic_format_context는 대입할 수 없어요 (공개 멤버 함수) |
arg |
주어진 인덱스의 인자를 반환해요 (공개 멤버 함수) |
locale |
로케일별 서식 지정에 사용되는 로케일을 반환해요 (공개 멤버 함수) |
out |
출력 버퍼에 대한 반복자를 반환해요 (공개 멤버 함수) |
advance_to |
출력 반복자를 주어진 위치로 전진시켜요 (공개 멤버 함수) |
std::basic_format_context::arg
std :: basic_format_arg < basic_format_context > arg ( std :: size_t id ) const ;
args에서 id 번째 인자를 담은 std::basic_format_arg를 반환해요. 여기서 args는 서식 지정 함수에 전달된 매개변수 팩 또는 std::basic_format_args 객체를 의미해요.
id가 서식 지정 인자 수보다 작지 않으면, 기본 생성된 std::basic_format_arg(즉, std::monostate 객체를 담은)를 반환해요.
std::basic_format_context::locale
std :: locale locale ();
서식 지정 함수에 전달된 로케일을 반환해요. 서식 지정 함수가 로케일을 받지 않으면 기본 생성된 std::locale을 반환해요.
std::basic_format_context::out
iterator out ();
출력 버퍼에 대한 반복자를 반환해요. 결과는 저장된 반복자에서 이동 생성(move-constructed)돼요.
std::basic_format_context::advance_to
void advance_to ( iterator it );
it를 저장된 출력 반복자에 이동 대입(move assign)해요. advance_to 호출 후, 다음 out() 호출은 대입 전의 값을 가진 반복자를 반환해요.
예제
이 섹션은 불완전해요. 이유: 예제 없음
결함 보고서
다음 동작 변경 결함 보고서는 이전에 발표된 C++ 표준에 소급 적용됐어요.
| DR | 적용 대상 | 발표된 동작 | 올바른 동작 |
|---|---|---|---|
| LWG 3567 | C++20 | basic_format_context가 이동 전용 반복자 타입에서 동작하지 않음 |
이동 반복자에서 동작하도록 수정됨 |
| LWG 3975 | C++20 | basic_format_context의 사용자 특수화가 허용됨 |
허용되지 않음 |
| LWG 4061 | C++20 | basic_format_context가 사용자 코드로 생성 및 대입 가능했음 |
생성도 대입도 불가능하게 수정됨 |