Советы по устранению ошибок: ошибка C2248: 'std :: basic_ios <_Elem, _Traits> :: basic_ios': невозможно получить доступ к закрытому члену, объявленному в классе - PullRequest
0 голосов
/ 24 января 2012

Я конвертирую большое приложение 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 повсеместно в кодовой базе из нескольких десятков тысяч строк кода (ни одна из которых не написана мной).

Я бы очень признателен за любую помощь / советы / стратегии, чтобы найти этот тип ошибки компилятора.Как бы вы подошли к проблеме обнаружения ошибок такого рода?

1 Ответ

1 голос
/ 24 января 2012

Как бы вы подошли к проблеме обнаружения ошибок такого типа?

Выполните grep (поиск по регулярному выражению) в ваших исходных файлах что-то вроде

\(([^,]+,)*, (std::)?of?stream [^&]
...