Bughunting提示:错误C2248:'std :: basic_ios< _Elem,_Traits> :: basic_ios':无法访问类中声明的私有成员

时间:2012-01-24 13:17:05

标签: c++ visual-studio-2010 compiler-errors std

我正在将一个大型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的代码行。错误消息只链接到VS2010中包含的fstream标头,我的项目在代码库中使用ofstream几万行代码(没有一个由我编写)。

我会非常熟悉任何帮助/提示/策略来找到这种类型的编译器错误。你如何处理找到这种错误的问题?

1 个答案:

答案 0 :(得分:1)

  

您如何解决查找此类错误的问题?

在源文件中执行grep(正则表达式搜索),例如

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