Scroll to navigation

std::basic_streambuf::~basic_streambuf(3) C++ Standard Libary std::basic_streambuf::~basic_streambuf(3)

NAME

std::basic_streambuf::~basic_streambuf - std::basic_streambuf::~basic_streambuf

Synopsis


virtual ~basic_streambuf();


This destructor has no effect: the members of this basic_streambuf (the pointers and
the locale) are destructed in accordance with the usual object destruction sequence
after this destructor returns. However, since it is declared public virtual, it
allows the objects that are derived from std::basic_streambuf to be deleted through
a pointer to base class.

Parameters


(none)

Example

// Run this code


#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
}

Output:


Hello


Defect reports


The following behavior-changing defect reports were applied retroactively to
previously published C++ standards.


DR Applied to Behavior as published Correct behavior
LWG 54 C++98 the effect of the destructor was not specified as no effect
specified

See also


constructor constructs a basic_streambuf object
(protected member function)

2024.06.10 http://cppreference.com