std::basic_filebuf<CharT, Traits>* close();
If a put area exist (e.g. file was opened for writing), first calls overflow(Traits::eof()) to write all pending output to the file, including any unshift sequences.
If the most recently called function, out of
overflow(), then calls std::codecvt::unshift(), perhaps multiple times, to determine the unshift sequence according to the imbued locale, and writes that sequence to file with overflow(Traits::eof()).
Then, closes the file as if by calling std::fclose(), regardless of whether any of the preceding calls succeeded or failed.
If any of the function calls made, including the call to std::fclose(), fails, returns a null pointer. If any of the function calls made throws an exception, the exception is caught and rethrown after closing the file. If the file is already closed, returns a null pointer right away.
In any case, updates the private member variable that is accessed by is_open().
 Return value
this on success, a null pointer on failure.
|This section is incomplete|
Reason: no example
 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 443||C++98||the file was written using overflow(EOF)||changed to overflow(Traits::eof())|
|LWG 622||C++98||it was unclear how to handle the
exception thrown during closing
|it is rethrown after closing the file|
 See also
| checks if the associated file is open |
(public member function)
| destructs a |
(virtual public member function)