名前空間
変種
操作

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

From cppreference.com
< cpp‎ | io‎ | basic streambuf
 
 
 
 
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 適用対象 公開された動作 正しい動作
LWG 54 C++98 デストラクタの効果が指定されていなかった 効果なしと指定された

[編集] 関連項目

basic_streambuf オブジェクトを構築する
(protected メンバ関数) [編集]
English 日本語 中文(简体) 中文(繁體)