Namespaces
Variants

std:: vformat_to

From cppreference.net
헤더에 정의됨 <format>
template < class OutputIt >
OutputIt vformat_to ( OutputIt out, std:: string_view fmt, std:: format_args args ) ;
(1) (C++20부터)
template < class OutputIt >
OutputIt vformat_to ( OutputIt out, std:: wstring_view fmt, std:: wformat_args args ) ;
(2) (C++20부터)
template < class OutputIt >

OutputIt vformat_to ( OutputIt out, const std:: locale & loc,

std:: string_view fmt, std:: format_args args ) ;
(3) (C++20부터)
template < class OutputIt >

OutputIt vformat_to ( OutputIt out, const std:: locale & loc,

std:: wstring_view fmt, std:: wformat_args args ) ;
(4) (C++20부터)

args 에 보관된 인수들을 형식 문자열 fmt 에 따라 포맷하고, 결과를 출력 반복자 out 에 기록합니다. 존재하는 경우, loc 은 로케일별 포맷팅에 사용됩니다.

CharT decltype ( fmt ) :: char_type 로 정의합니다 ( char 는 오버로드 (1,3) 에 해당하며, wchar_t 는 오버로드 (2,4) 에 해당합니다).

이러한 오버로드는 OutputIt 가 다음 개념을 만족하는 경우에만 오버로드 해결에 참여합니다: std:: output_iterator < const CharT & > .

OutputIt 는 개념 std:: output_iterator < const CharT & > 의 의미적 요구사항을 충족해야 하며, std:: formatter < Ti, CharT > 는 인자 타입 내 모든 Ti 에 대해 Formatter 요구사항을 충족해야 합니다. 그렇지 않을 경우 동작은 정의되지 않습니다.

목차

매개변수

out - 출력 버퍼에 대한 반복자
fmt - 형식 문자열을 나타내는 객체. 형식 문자열은 다음으로 구성됩니다:
  • 일반 문자( { } 제외), 출력에 변경 없이 복사됨
  • 이스케이프 시퀀스 { { } } , 출력에서 각각 { } 로 대체됨
  • 치환 필드

각 치환 필드는 다음 형식을 가집니다:

{ arg-id (optional) } (1)
{ arg-id (optional) : format-spec } (2)
1) 형식 지정자 없는 치환 필드
2) 형식 지정자가 있는 치환 필드
arg-id - 서식 지정에 사용할 args 내 인자의 인덱스를 지정함; 생략하면 인자가 순서대로 사용됨

형식 문자열 내 arg-id 는 모두 명시되거나 모두 생략되어야 함. 수동 및 자동 인덱싱을 혼용하는 것은 오류입니다.

format-spec - 해당 인자에 대한 std::formatter 특수화에 의해 정의된 형식 지정. } 로 시작할 수 없음

(C++23부터)
(C++26부터)
  • 다른 서식 가능 타입의 경우, 형식 지정은 사용자 정의 formatter 특수화에 의해 결정됨
args - 서식 지정될 인자들
loc - std::locale 로케일별 서식 지정에 사용되는 로케일

반환값

출력 범위의 끝을 지난 반복자.

예외

std::format_error 를 발생시킵니다 - fmt 가 제공된 인수들에 대한 유효한 형식 문자열이 아닌 경우. 또한 포매터나 반복자 연산에서 발생하는 모든 예외를 전파합니다.

예제

결함 보고서

다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.

DR 적용 대상 게시된 동작 올바른 동작
P2216R3 C++20 args 의 타입이 OutputIt 에 대해 매개변수화됨 매개변수화되지 않음

참고 항목