Namespaces
Variants

std:: basic_osyncstream

From cppreference.net
< cpp ‎ | io
헤더에 정의됨 <syncstream>
template <

class CharT,
class Traits = std:: char_traits < CharT > ,
class Allocator = std:: allocator < CharT >

> class basic_osyncstream : public std:: basic_ostream < CharT, Traits >
(C++20부터)

클래스 템플릿 std::basic_osyncstream std::basic_syncbuf 를 위한 편의성 래퍼입니다. 동일한 스트림에 쓰기를 수행하는 스레드들의 동기화 메커니즘을 제공합니다.

명명된 변수와 함께 사용할 수 있습니다:

{
    std::osyncstream synced_out(std::cout); // std::cout에 대한 동기화된 래퍼
    synced_out << "Hello, ";
    synced_out << "World!";
    synced_out << std::endl; // 플러시가 표시되지만 아직 수행되지 않음
    synced_out << "and more!\n";
} // 문자가 전송되고 std::cout이 플러시됨

그리고 임시 객체와 함께:

std::osyncstream(std::cout) << "Hello, " << "World!" << '\n';

동일한 최종 대상 버퍼(위 예제에서의 std::cout )에 대한 모든 출력이 데이터 경쟁으로부터 자유롭고, 어떤 방식으로도 인터리빙되거나 손상되지 않을 것이라는 보장을 제공합니다. 단, 해당 최종 대상 버퍼에 대한 모든 쓰기 작업이 (서로 다른) std::basic_osyncstream 인스턴스를 통해 수행되는 경우에 한합니다.

std::basic_osyncstream 의 일반적인 구현은 단 하나의 멤버만 보유합니다: 래핑된 std::basic_syncbuf .

cpp/io/ios base cpp/io/basic ios cpp/io/basic ostream std-basic osyncstream-inheritance.svg

상속 다이어그램

일반적인 문자 타입에 대한 여러 typedef가 제공됩니다:

헤더에 정의됨 <syncstream>
유형 정의
std::osyncstream std :: basic_osyncstream < char >
std::wosyncstream std :: basic_osyncstream < wchar_t >

목차

멤버 타입

멤버 타입 정의
char_type CharT
traits_type Traits ; Traits::char_type CharT 가 아닐 경우 프로그램은 ill-formed입니다.
int_type Traits::int_type
pos_type Traits::pos_type
off_type Traits::off_type
allocator_type Allocator
streambuf_type std:: basic_streambuf < CharT, Traits >
syncbuf_type std:: basic_syncbuf < CharT, Traits, Allocator >

멤버 함수

basic_osyncstream 객체를 생성합니다
(public member function)
basic_osyncstream 객체를 할당합니다
(public member function)
basic_osyncstream 을 파괴하고 내부 버퍼를 방출합니다
(public member function)
내부 basic_syncbuf 에 대한 포인터를 얻습니다
(public member function)
최종 대상 스트림 버퍼에 대한 포인터를 얻습니다
(public member function)
내부 데이터를 최종 대상으로 전송하기 위해 내부 basic_syncbuf 에서 emit() 를 호출합니다
(public member function)

std:: basic_ostream 로부터 상속됨

멤버 함수

형식화된 출력
형식화된 데이터를 삽입함
( std::basic_ostream<CharT,Traits> 의 public 멤버 함수)
비형식화된 출력
문자를 삽입함
( std::basic_ostream<CharT,Traits> 의 public 멤버 함수)
문자 블록을 삽입함
( std::basic_ostream<CharT,Traits> 의 public 멤버 함수)
위치 지정
출력 위치 표시자를 반환함
( std::basic_ostream<CharT,Traits> 의 public 멤버 함수)
출력 위치 표시자를 설정함
( std::basic_ostream<CharT,Traits> 의 public 멤버 함수)
기타
기본 저장 장치와 동기화함
( std::basic_ostream<CharT,Traits> 의 public 멤버 함수)

멤버 클래스

출력 연산을 위한 스트림 준비의 기본 로직을 구현함
( std::basic_ostream<CharT,Traits> 의 public 멤버 클래스)

std:: basic_ios 로부터 상속됨

멤버 타입

멤버 타입 정의
char_type CharT
traits_type Traits
int_type Traits::int_type
pos_type Traits::pos_type
off_type Traits::off_type

멤버 함수

상태 함수
오류가 발생하지 않았는지 확인합니다 (즉, I/O 작업이 가능한 상태인지)
( std::basic_ios<CharT,Traits> 의 public 멤버 함수)
파일 끝에 도달했는지 확인합니다
( std::basic_ios<CharT,Traits> 의 public 멤버 함수)
오류가 발생했는지 확인합니다
( std::basic_ios<CharT,Traits> 의 public 멤버 함수)
복구 불가능한 오류가 발생했는지 확인합니다
( std::basic_ios<CharT,Traits> 의 public 멤버 함수)
오류가 발생했는지 확인합니다 ( fail() 의 동의어)
( std::basic_ios<CharT,Traits> 의 public 멤버 함수)
오류가 발생하지 않았는지 확인합니다 ( ! fail() 의 동의어)
( std::basic_ios<CharT,Traits> 의 public 멤버 함수)
상태 플래그를 반환합니다
( std::basic_ios<CharT,Traits> 의 public 멤버 함수)
상태 플래그를 설정합니다
( std::basic_ios<CharT,Traits> 의 public 멤버 함수)
상태 플래그를 수정합니다
( std::basic_ios<CharT,Traits> 의 public 멤버 함수)
서식 지정
서식 정보를 복사합니다
( std::basic_ios<CharT,Traits> 의 public 멤버 함수)
채움 문자를 관리합니다
( std::basic_ios<CharT,Traits> 의 public 멤버 함수)
기타
예외 마스크를 관리합니다
( std::basic_ios<CharT,Traits> 의 public 멤버 함수)
로케일을 설정합니다
( std::basic_ios<CharT,Traits> 의 public 멤버 함수)
연결된 스트림 버퍼를 관리합니다
( std::basic_ios<CharT,Traits> 의 public 멤버 함수)
연결된 스트림을 관리합니다
( std::basic_ios<CharT,Traits> 의 public 멤버 함수)
문자를 좁힙니다
( std::basic_ios<CharT,Traits> 의 public 멤버 함수)
문자를 넓힙니다
( std::basic_ios<CharT,Traits> 의 public 멤버 함수)

std:: ios_base 에서 상속됨

멤버 함수

서식 지정
형식 플래그 관리
( std::ios_base 의 public member function)
특정 형식 플래그 설정
( std::ios_base 의 public member function)
특정 형식 플래그 해제
( std::ios_base 의 public member function)
부동 소수점 연산의 소수점 정밀도 관리
( std::ios_base 의 public member function)
필드 너비 관리
( std::ios_base 의 public member function)
로캘
로캘 설정
( std::ios_base 의 public member function)
현재 로캘 반환
( std::ios_base 의 public member function)
내부 확장 가능 배열
[static]
pword() iword() 의 인덱스로 사용하기 안전한 프로그램 전체 고유 정수 반환
( std::ios_base 의 public static member function)
필요한 경우 전용 저장소 크기 조정 및 지정된 인덱스의 long 요소 접근
( std::ios_base 의 public member function)
필요한 경우 전용 저장소 크기 조정 및 지정된 인덱스의 void * 요소 접근
( std::ios_base 의 public member function)
기타
이벤트 콜백 함수 등록
( std::ios_base 의 public member function)
C++과 C I/O 라이브러리 상호 운용성 설정
( std::ios_base 의 public static member function)
멤버 클래스
스트림 예외
( std::ios_base 의 public member class)
표준 스트림 객체 초기화
( std::ios_base 의 public member class)

멤버 타입 및 상수

유형 설명
스트림 열기 모드 타입

다음 상수들도 정의되어 있습니다:

상수 설명
app 각 쓰기 전에 스트림의 끝으로 이동
binary 바이너리 모드 로 열기
in 읽기용으로 열기
out 쓰기용으로 열기
trunc 열 때 스트림의 내용을 버림
ate 열자마자 스트림의 끝으로 이동
noreplace (C++23) 배타적 모드로 열기

(typedef)
서식 플래그 타입

다음 상수들도 정의됩니다:

상수 설명
dec 정수 입출력에 10진법 사용: std::dec 참조
oct 정수 입출력에 8진법 사용: std::oct 참조
hex 정수 입출력에 16진법 사용: std::hex 참조
basefield dec | oct | hex . 마스킹 연산에 유용함
left 왼쪽 정렬 (오른쪽에 채움 문자 추가): std::left 참조
right 오른쪽 정렬 (왼쪽에 채움 문자 추가): std::right 참조
internal 내부 정렬 (내부 지정 지점에 채움 문자 추가): std::internal 참조
adjustfield left | right | internal . 마스킹 연산에 유용함
scientific 부동 소수점 타입을 과학적 표기법으로 생성하거나, fixed 와 결합 시 16진법 표기법 사용: std::scientific 참조
fixed 부동 소수점 타입을 고정 소수점 표기법으로 생성하거나, scientific 와 결합 시 16진법 표기법 사용: std::fixed 참조
floatfield scientific | fixed . 마스킹 연산에 유용함
boolalpha bool 타입을 영숫자 형식으로 삽입 및 추출: std::boolalpha 참조
showbase 정수 출력을 위한 숫자 기반 접두사 생성, 통화 입출력에서 통화 표시자 요구: std::showbase 참조
showpoint 부동 소수점 숫자 출력에서 무조건 소수점 문자 생성: std::showpoint 참조
showpos 음수가 아닌 숫자 출력에 + 문자 생성: std::showpos 참조
skipws 특정 입력 연산 전 선행 공백 건너뜀: std::skipws 참조
unitbuf 각 출력 연산 후 출력 플러시: std::unitbuf 참조
uppercase 특정 출력 연산에서 일부 소문자를 대문자로 대체: std::uppercase 참조

(typedef)
스트림 상태 타입

다음 상수들도 정의됩니다:

상수 설명
goodbit 오류 없음
badbit 복구 불가능한 스트림 오류
failbit 입출력 연산 실패 (형식화 또는 추출 오류)
eofbit 관련 입력 시퀀스가 파일 끝에 도달함

(typedef)
탐색 방향 타입

다음 상수들도 정의되어 있습니다:

상수 설명
beg 스트림의 시작
end 스트림의 끝
cur 스트림 위치 표시자의 현재 위치

(typedef)
이벤트 타입 지정
(enum)
콜백 함수 타입
(typedef)

참고 사항

기능 테스트 매크로 표준 기능
__cpp_lib_syncbuf 201803L (C++20) 동기화된 버퍼 출력 스트림 ( std::osyncstream , std::syncbuf ) 및 조작자