Namespaces
Variants

std::basic_format_arg<Context>:: handle

From cppreference.net
헤더에 정의됨 <format>
template < class Context >
class basic_format_arg < Context > :: handle ;
(C++20 이후)

사용자 정의 타입의 객체를 서식 지정할 수 있게 하는 타입 소거 래퍼입니다.

handle 객체는 일반적으로 std::make_format_args 에 의해 생성되며 std::visit_format_arg 또는 visit 멤버 함수를 통해 std::basic_format_arg (C++26부터) 를 통해 접근됩니다.

목차

데이터 멤버

handle 의 일반적인 구현은 TriviallyCopyable 이며 오직 두 개의 비정적 데이터 멤버만 저장합니다:

  • 객체의 const void * 포인터, 그리고
  • void ( * ) ( std:: basic_format_parse_context < Context :: char_type > & , Context & , const void * ) 함수 포인터로, 아래에서 설명하는 format 멤버 함수에서 필요한 연산을 수행하는 함수를 가리킵니다.

멤버 함수

format
(C++20)
참조된 객체를 주어진 컨텍스트로 서식화합니다
(public member function)

std::basic_format_arg<Context>::handle:: format

void format ( std:: basic_format_parse_context < Context :: char_type > & parse_ctx,
Context & format_ctx ) const ;
(C++20 이후)

다음을 정의합니다:

  • T 를 서식 지정 인자의 타입으로,
  • TD std:: remove_const_t < T > 로,
  • TQ const TD __formattable_with < Context > 를 만족하면 const TD , 그렇지 않으면 TD 로,
  • ref 를 서식 지정 인자에 대한 참조로 설정합니다.

다음 코드와 동일합니다: typename Context :: template formatter_type < TD > f ;
parse_ctx. advance_to ( f. parse ( parse_ctx ) ) ;
format_ctx. advance_to ( f. format ( const_cast < TQ & > ( static_cast < const TD & > ( ref ) ) , format_ctx ) ) ;

참고 사항

A handle 는 형식화된 인수에 대해 참조 의미론을 가지며 해당 수명을 연장하지 않습니다. 인수가 handle 보다 더 오래 존재하도록 보장하는 것은 프로그래머의 책임입니다. 일반적으로 handle 은 포맷팅 함수 내에서만 사용됩니다.

참고 항목

사용자 정의 포매터를 위한 포매팅 인자에 대한 접근을 제공하는 클래스 템플릿
(클래스 템플릿)
모든 포매팅 인자를 참조하는 타입 삭제 객체를 생성하며, format_args 로 변환 가능함
(함수 템플릿)