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부터

이 클래스는 서식 지정 인자들과 출력 반복자로 구성된 서식 지정 상태에 접근할 수 있게 해줘요.

OutputItstd::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가 사용자 코드로 생성 및 대입 가능했음 생성도 대입도 불가능하게 수정됨

더 알아보기 (Learn more)

cppreference