std::basic_streambuf<CharT,Traits>::~basic_streambuf
From cppreference.com
 
 
 < cpp | io | basic streambuf 
 
 
 C++ 
 Feature test macros (C++20)
 Concepts library (C++20)
 Metaprogramming library (C++11)
 Ranges library (C++20)
 Filesystem library (C++17)
 Concurrency support library (C++11)
 Execution control library (C++26)
Input/output library 
 
 
 
 
 
 
 
 
 
 
 
 
 Print functions (C++23)
 Buffers
(C++23)
(C++98/26*)
(C++20)
 Streams
 Abstractions
 File I/O
 String I/O
 Array I/O
(C++23)
(C++23)
(C++23)
(C++98/26*)
(C++98/26*)
(C++98/26*)
 Synchronized Output
(C++20)
 Types
 Error category interface
(C++11)
(C++11)
std::basic_streambuf 
 
     
 
 
 
 
 
 
 
 
 
 
 
 
 
 Public member functions
basic_streambuf::~basic_streambuf
 Locales
 Positioning
 Get area
 Put area
 Putback
 Protected member functions
(C++11)
(C++11)
 Locales
 Positioning
 Get area
 Put area
 Putback
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.
Contents
[edit] Parameters
(none)
[edit] 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
[edit] 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 | specified as no effect |