Несовместимое предупреждение компилятора деструктора при наследовании от std::streambuf

Я получаю предупреждение компилятора ICL при наследовании от std::streambuf говорят что деструктор не совместим, есть идеи что я тут не так делаю? Создание виртуального деструктора тоже не работает.

предупреждение #809: спецификация исключения для виртуальной функции "CAbcBuffer::~CAbcBuffer" несовместима с таковой переопределенной функции "std:: basic_streambuf<_Elem, _Traits>:: ~ basic_streambuf [with _Elem = char, _Traits = std:: char_traits] "

class CAbcBuffer : public std::streambuf
{
    protected:
        /** Work buffer */
        char *buffer;
    public:
        explicit CAbcBuffer()
        {
            /*
            Stores the beginning pointer, the next pointer, and the end pointer for the 
            input buffer
            */
            buffer = new char[100];
            std::streambuf::setg(buffer, buffer, buffer);
        }

        ~CAbcBuffer() {
            delete [] buffer;
        }
}

1 ответ

Решение

Вы скучаете по throw() декларация для вашего деструктора. Это решит проблему:

~CAbcBuffer() throw() {
    delete [] buffer;
}
Другие вопросы по тегам