试图引用一个被删除的函数
Visual C++ 2015 - attempting to reference a deleted function
在用vc++ 2015编译代码时,我得到了两个错误,我没有得到vc++ 2013。下面是两个代码片段:
CArray<CQualifiedFolderObject*, CQualifiedFolderObject*> CQualifiedFolderObject::mQualifiedFolders =
CArray<CQualifiedFolderObject*, CQualifiedFolderObject*>()
和
sProfileArray COesInterface::g_arrProfiles[] = {
{FALSE, },
{FALSE, },
{FALSE, },
{FALSE, },
{FALSE, CStringArray()},
};
在这两种情况下,我得到C2280 "试图引用已删除的函数"错误。在第一种情况下,它是针对CArray
的,在第二种情况下,它是针对CStringArray
的。
我对c++比较陌生。我想了解为什么这个编译在2013年而不是2015年,以及我能做些什么来解决这个问题。
检查类的定义,此错误意味着您的类定义了自定义析构函数,或者其中一个函数更改了另一个函数的默认生成。
例如:如果你声明并定义了destruct-or,你将不会得到默认的复制构造函数。
有六个,检查规则或默认全部。
语法如下:如果你试图复制它会产生和上面一样的错误。
struct noncopyable
{
noncopyable() =default;
noncopyable(const noncopyable&) =delete;
noncopyable& operator=(const noncopyable&) =delete;
};
相关文章:
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 从链接列表c++中删除一个项目
- 删除映射和分割错误中的一个过去结束元素
- 使用另一个字符串从字符串中删除空格
- 编写一个函数来删除单链表中的节点(尾部除外),仅授予对该节点的访问权限
- 创建了一个链表,但如何删除 c++ 中的"所有"节点
- 如何知道地图中的最后一个元素是否被删除?
- G++ 发出警告,要求删除一个代码的数组,但不删除另一个代码的数组
- 动态分配列表 - 创建一个函数,用于删除所有包含偶数值的元素
- 如何删除矢量中的重复值,最后一个除外
- C++ 删除存在于另一个矢量中的矢量项,同时保留顺序
- 当类型适当的构造函数可用时,为什么一个编译器尝试使用已删除的副本构造函数
- 在 c++ 中打开文件、删除标点符号并追加到另一个文件中
- 删除链接列表中剩余的最后一个节点
- 编译器在C++中调用另一个函数时,在参数中查找已删除的构造函数
- 避免在使用链接列表从 deque 中删除最后一个节点时出现内存泄漏
- 在C++中为二叉搜索树创建一个删除函数
- 当编译一个删除停止字并应用大小写折叠的程序时,会出现一个奇怪的代码
- 为什么C++仍然有一个删除[]和一个删除运算符
- 一个删除行的函数