【发布时间】:2015-11-29 00:51:54
【问题描述】:
我在 Visual Studio 2015 中遇到了一个非常奇怪的错误消息。以下精简代码:
struct A
{
A(int val = 0)
:
x(val)
{}
int x = 0;
};
struct B: A
{
static int y;
};
int B::y = 1;
struct C: B
{
};
int main()
{
C c;
return 0;
}
在 Clang 上编译没有任何问题。但是 Visual Studio 2015 IntelliSense 会给出以下错误消息:
the default constructor of "C" cannot be referenced -- it is a deleted function
我的代码中是否缺少某些内容,或者这是 Visual Studio 中的错误?
更新
根据此处的 cmets 和答案,我在 Microsoft Connect 上打开了 bug report。
【问题讨论】:
-
它可以编译,对吧?我不会担心 IntelliSense 错误。它有时会感到困惑并错误地报告问题。
-
这是(Intellisense in)Visual Studio 中的一个错误。所有 Visual Studio 错误都是真实的。 AFAIK。 Intellisense 不使用与编译器相同的分析机制。不过,这种情况将来可能会改变。
-
我觉得我们每周都会在 SO 上看到一些 Intellisense 错误。
-
感觉我们需要一个规范的问题来解决这个问题,但不确定如何构建它。
标签: c++ c++11 visual-studio-2015