Несовместимое предупреждение компилятора деструктора при наследовании от 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;
}