Я компилирую устаревший проект с моими последними компиляторами gcc g++ (версия > 6)
Существует класс CodeWriter с ссылочной переменной ostream.
class CodeWriter
{
//private:
protected:
ostream &m_stream;
public:
CodeWriter(ostream &stream):m_stream(stream){}
~CodeWriter(){
if(m_stream != NULL){
m_stream.flush();
}
}
};
Класс довольно большой, поэтому я включил только соответствующие переменные и функции.
Как вы видите, деструктор, похоже, сравнивает ссылку на NULL.
Этот проект был составлен отлично, когда я использовал его с помощью старой gnu toolchain.
Но теперь это ошибка, говорящая, что нет сопоставления operator != для сравнения ostream и long int.
Может ли кто-нибудь объяснить обоснование изменений и как я могу это исправить?
Я был бы рад предоставить дополнительную информацию/включить весь класс, если потребуется.