Я конвертирую большое приложение VC ++ 6.0 в VS2010 и продолжаю сталкиваться с этой ошибкой для одного из проектов:
error C2248: 'std::basic_ios<_Elem,_Traits>::basic_ios' : cannot access private member declared in class 'std::basic_ios<_Elem,_Traits>'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\ios(176) : see declaration of 'std::basic_ios<_Elem,_Traits>::basic_ios'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> This diagnostic occurred in the compiler generated function 'std::basic_ofstream<_Elem,_Traits>::basic_ofstream(const std::basic_ofstream<_Elem,_Traits> &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
Основываясь на тексте ошибки и похожих вопросах, заданных здесь, я предполагаю, что ошибкавызывается экземпляром ofstream
, переданным непосредственно в функции, а не по ссылке.
Проблема, с которой я столкнулся, заключается в том, чтобы найти строку кода, в которой ofstream
передан неверным образом.Сообщение об ошибке ссылается только на заголовок fstream, включенный в VS2010, и мой проект использует ofstream
повсеместно в кодовой базе из нескольких десятков тысяч строк кода (ни одна из которых не написана мной).
Я бы очень признателен за любую помощь / советы / стратегии, чтобы найти этот тип ошибки компилятора.Как бы вы подошли к проблеме обнаружения ошибок такого рода?