Namespaces
Variants

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

From cppreference.net
virtual ~basic_streambuf ( ) ;

このデストラクタは何の効果も持ちません:この basic_streambuf のメンバー(ポインタとロケール)は、このデストラクタが戻った後に通常のオブジェクト破棄シーケンスに従って破棄されます。しかし、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; // the file is closed, output flushed and written
    std::ifstream f("test.txt");
    std::cout << f.rdbuf(); // proof
}

出力:

Hello

欠陥報告

以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。

DR Applied to Behavior as published Correct behavior
LWG 54 C++98 デストラクタの効果が規定されていなかった 効果なしとして規定

関連項目

basic_streambuf オブジェクトを構築する
(protected member function)