|
|
1
4
我可以用code::blocks和vc++2005确认,它没有给出错误发生的位置提示。声明自己的私有副本构造函数也没有帮助。
编译日志(第五行是类声明的最后一行):
除非有一个编译器开关来实现更彻底的错误诊断,否则这不是我第一次简单地用gcc(mingw)编译文件来获得更有用的错误诊断。(唉,您的代码应该没有VC++扩展。) |
|
|
2
0
您可以临时创建一个手动复制构造函数(具有相同的签名)和默认实现,只是为了跟踪这个错误。不确定这是否会让你更容易找到。 |
|
|
3
0
实际上,解决这个问题的最佳方法(这里是vs2013)似乎是迭代地在输出窗口中爬行: 1 /当您收到“诊断在编译器生成函数x::x(const x&)”中出现在输出中时,转到您的“X”类,并使用C++ 11符号显式删除复制构造函数:“x(const x&)=删除”; 2/重新编译,现在输出必须显示相同的错误,但在子类上发生诊断,然后再次循环到步骤1,明确删除子类上的复制构造函数,直到到达真正的错误类… |
|
|
4
-1
打开输出窗口,显示完整的建筑日志。检查错误信息。在这个错误消息下,您通常可以找到更多的信息来帮助您跟踪问题的根源。 如果双击错误列表中的问题并转到输出窗口,光标将定位到该错误消息。 |
|
|
5
-1
在输出窗口或生成日志中,您应该看到编译器试图在代码中使用模板的位置…不过,你得滚动一下。
如果生成日志中没有足够的信息,则还有一个控制msbuild详细性的选项:
|