std::ios_base:: Init
|
class
Init
;
|
||
이 클래스는 기본 C++ 스트림들( std::cin , std::cout 등)이 적절히 초기화되고 소멸되도록 보장하는 데 사용됩니다. 이 클래스는 생성된 인스턴스의 수를 추적하며, 첫 번째 인스턴스가 생성될 때 C++ 스트림들을 초기화하고 마지막 인스턴스가 소멸될 때 출력 스트림들을 플러시합니다.
헤더
<iostream>
는 정적 저장 기간을 가진
std::ios_base::Init
인스턴스를 (직접 또는 간접적으로) 정의하는 것처럼 동작합니다: 이는
순서화된 초기화
를 가진 정적 객체들의 생성자와 소멸자에서 표준 I/O 스트림에 안전하게 접근할 수 있도록 합니다
(단,
<iostream>
가 이러한 객체들이 정의되기 전에 번역 단위에 포함되어 있는 경우).
|
C++ 라이브러리 모듈
각각은
호스티드 구현
내에서
인터페이스 유닛
을 포함하는 것처럼 동작하며, 이는
내보내지 않은
결과적으로, 해당 변수의 정의는 C++ 라이브러리 모듈의 임포트 지점 이후에 나오는 모든 선언보다 외관 순서상 앞서게 됩니다. 이러한 정의의 존재 여부는 표준 iostream 객체를 참조하지 않는 프로그램에서는 관찰할 수 없습니다. |
(C++23부터) |
멤버 함수
|
(constructor)
|
아직 생성되지 않은 경우 기본 C++ 스트림을 초기화합니다
(public member function) |
|
(destructor)
|
*
this
가 파괴되는 마지막 인스턴스인 경우 기본 C++ 스트림을 플러시합니다
(public member function) |
결함 보고서
다음 동작 변경 결함 보고서는 이전에 발표된 C++ 표준에 소급 적용되었습니다.
| DR | 적용 대상 | 게시된 동작 | 올바른 동작 |
|---|---|---|---|
| LWG 1123 | C++98 |
생성자와 소멸자의 동작이
설명 전용 정적 데이터 멤버
init_cnt
에 의존함
|
의존성 제거 |
참고 항목
|
표준 C 입력 스트림으로부터 읽기
stdin
(전역 객체) |
|
|
표준 C 출력 스트림에 쓰기
stdout
(전역 객체) |
|
|
표준 C 오류 스트림에 쓰기
stderr
, 버퍼링되지 않음
(전역 객체) |
|
|
표준 C 오류 스트림에 쓰기
stderr
(전역 객체) |