Namespaces
Variants

std::basic_streambuf<CharT,Traits>:: ~basic_streambuf

From cppreference.net
virtual ~basic_streambuf ( ) ;

이 소멸자는 아무런 효과가 없습니다: 이 basic_streambuf 의 멤버들(포인터들과 locale)은 이 소멸자가 반환된 후 일반적인 객체 소멸 순서에 따라 소멸됩니다. 그러나 public virtual로 선언되었기 때문에, std::basic_streambuf 에서 파생된 객체들이 기본 클래스 포인터를 통해 삭제될 수 있도록 합니다.

목차

매개변수

(없음)

예제

#include <fstream>
#include <iostream>
int main()
{
    std::filebuf* fbp = new std::filebuf;
    fbp->open("test.txt", std::ios_base::out);
    fbp->sputn("Hello\n", 6);
    std::streambuf* sbp = fbp;
    delete sbp; // 파일이 닫히고 출력이 플러시되어 기록됨
    std::ifstream f("test.txt");
    std::cout << f.rdbuf(); // 증명
}

출력:

Hello

결함 보고서

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

DR 적용 대상 게시된 동작 올바른 동작
LWG 54 C++98 소멸자의 효과가 명시되지 않음 효과 없음으로 명시

참고 항목

basic_streambuf 객체를 생성합니다
(protected 멤버 함수)