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/w/cpp/io/basic_streambuf/%7Ebasic_streambuf

Spec-Zone.ru

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