std:: vprint_unicode (std::ostream)
|
헤더 파일에 정의됨
<ostream>
|
||
|
void
vprint_unicode
(
std::
ostream
&
os,
std:: string_view fmt, std:: format_args args ) ; |
(C++23부터) | |
형식 문자열 fmt 에 따라 args 를 형식화하고, 결과를 출력 스트림 os 에 기록합니다. FormattedOutputFunction 으로 동작하지만, 오류 보고의 일부 세부 사항이 다릅니다 .
다음 작업을 순서대로 수행합니다:
- 먼저, 함수는 sentry 객체를 구성하고 검사합니다.
- 자동 변수를 다음과 같이 초기화합니다: std:: string out = std:: vformat ( os. getloc ( ) , fmt, args ) ; .
- out 을 os 에 기록합니다:
-
- 만약 os 가 네이티브 유니코드 API 를 통해서만 유니코드를 표시할 수 있는 터미널을 참조하는 경우, os 를 플러시하고 네이티브 유니코드 API를 사용하여 out 을 터미널에 기록합니다.
-
그렇지 않은 경우, 문자 시퀀스
[out. begin ( ),out. end ( ))를 os 에 삽입합니다.
터미널에 쓰거나 os 에 삽입하는 데 실패할 경우, os. setstate ( std:: ios_base :: badbit ) 를 호출합니다.
|
os 에 문자를 기록한 후, 관찰 가능한 체크포인트 를 설정합니다. |
(since C++26) |
만약 out 에 유효하지 않은 유니코드 코드 유닛 이 포함되어 있고 네이티브 유니코드 API가 사용되는 경우, 동작은 정의되지 않습니다.
목차 |
매개변수
| os | - | 데이터를 삽입할 출력 스트림 | ||||||||||||||||||||||||||||||||||||||||||||||
| fmt | - |
각 치환 필드는 다음 형식을 가집니다:
1)
형식 명세 없음 치환 필드
2)
형식 명세 포함 치환 필드
|
||||||||||||||||||||||||||||||||||||||||||||||
| args | - | 서식 지정될 인자들 | ||||||||||||||||||||||||||||||||||||||||||||||
예외
- std::bad_alloc 할당 실패 시.
- 모든 formatter 에서 발생하는 예외(예: std::format_error )를 os. exceptions ( ) 값과 관계없이 전파하며, os 의 오류 상태에서 ios_base::badbit 을 설정하지 않습니다.
- os 에 대한 삽입이 실패할 경우 호출되는 os. setstate ( ios_base :: badbit ) 로 인해 발생하는 ios_base::failure 를 throw 할 수 있습니다.
참고 사항
네이티브 유니코드 API 호출에 트랜스코딩이 필요한 경우, 유효하지 않은 코드 유닛은
U+FFFD
REPLACEMENT CHARACTER로 대체됩니다("The Unicode Standard - Core Specification",
Chapter 3.9
참조).
| 기능 테스트 매크로 | 값 | 표준 | 기능 |
|---|---|---|---|
__cpp_lib_print
|
202207L
|
(C++23) | 형식화된 출력 |
__cpp_lib_format
|
202207L
|
(C++23) | 노출 std::basic_format_string |
예제
|
이 섹션은 불완전합니다
이유: 예시가 없음 |
결함 보고서
다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.
| DR | 적용 대상 | 게시된 동작 | 올바른 동작 |
|---|---|---|---|
| LWG 4044 | C++23 |
터미널이 유니코드를 표시할 수 있는 경우
항상 네이티브 유니코드 API가 사용됨 |
터미널이 유니코드를 표시하기 위해 네이티브 유니코드 API만
사용할 수 있는 경우에만 사용됨 |
참고 항목
|
(C++23)
|
타입 삭제된 인수 표현을 사용하여 문자 데이터를 출력합니다
(함수) |
|
(C++23)
|
인수의 형식화된 표현을 출력합니다
(함수 템플릿) |
|
문자 데이터를 삽입하거나 rvalue 스트림에 삽입합니다
(함수 템플릿) |
|
|
유니코드 지원
stdout
또는 파일 스트림에 타입 삭제된 인수 표현을 사용하여 출력합니다
(함수) |
|
|
(C++20)
|
인수의 형식화된 표현을 새 문자열에 저장합니다
(함수 템플릿) |
외부 링크
| 1. | 유니코드 — 위키백과 |
| 2. | 유니코드 표준 버전 14.0 — 핵심 사양 |