n1c*_*ckp 8 c++ compiler-errors visual-c++
我想知道是否有办法在msvc(2005)中获得有关错误位置的更好信息?
例如,当我从类中继承boost :: noncopyable时,我得到一个C2248错误,例如:
错误C2248:'boost :: noncopyable _ :: noncopyable :: noncopyable':无法访问类'boost :: noncopyable _ :: noncopyable'中声明的私有成员.此诊断发生在编译器生成的函数'MyClass :: MyClass(const MyClass&)'中
但它没有告诉我复制构造函数的确切位置.这有点烦人.我真的不确定,但我想我记得看到某个设置我可以指定输出级别或其他东西,但我搜索并发现什么,所以我的问题是:有没有办法在msvc中变得更好(更丰满?)错误消息?
编辑:好吧,因为stackoverflow只是告诉我,我应该接受一个答案,我想知道是否有人可以告诉msvc 2008/2010是否给这个错误更好的诊断?有人还提到GCC应该这样做,有人能证实这一点吗?那么其他编译器呢(Intel?,Comeau?)
谢谢
我可以通过 Code::Blocks 和 VC++ 2005 确认,它没有提示错误发生的位置。声明自己的私有复制构造函数也没有帮助。
#include <boost/noncopyable.hpp>
class X: boost::noncopyable
{
};
void foo(X x) {}
int main()
{
X x;
foo(x);
}
Run Code Online (Sandbox Code Playgroud)
编译日志(第五行是类声明的最后一行):
main.cpp(5) : error C2248: 'boost::noncopyable_::noncopyable::noncopyable' : cannot access private member declared in class 'boost::noncopyable_::noncopyable' C:\boost_1_38_0\boost/noncopyable.hpp(27) : see declaration of 'boost::noncopyable_::noncopyable::noncopyable' C:\boost_1_38_0\boost/noncopyable.hpp(22) : see declaration of 'boost::noncopyable_::noncopyable' This diagnostic occurred in the compiler generated function 'X::X(const X &)'
除非有编译器开关来启用更彻底的错误诊断,否则这不是我第一次简单地使用 GCC (MinGW) 编译文件以获得更有用的错误诊断。(唉,您的代码应该不含 VC++ 扩展。)
| 归档时间: |
|
| 查看次数: |
1570 次 |
| 最近记录: |