Spec-Zone.ru › C++

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

virtual ~basic_streambuf();

Этот деструктор не оказывает никакого эффекта: члены этого basic_streambuf (указатели и локаль) разрушаются в соответствии с обычной последовательностью разрушения объектов после возврата из этого деструктора. Однако, поскольку он объявлен открытым виртуальным, он позволяет удалять объекты, производные от 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
(защищённая функция-член)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/io/basic_streambuf/~basic_streambuf

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API