问题标签 [deleted-functions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1965 浏览

c++ - 删除的复制构造函数导致删除的默认构造函数

此代码无法使用 gcc 4.7.0 编译:

错误是:

换句话说,编译器不会为基类生成默认构造函数,而是尝试调用已删除的复制构造函数作为唯一可用的重载。

这是正常的行为吗?

0 投票
1 回答
383 浏览

c++ - 为什么声明移动赋值时复制赋值没有被删除?

根据 C++ 标准 12.8.7:

如果类定义声明了移动构造函数或移动赋值运算符,则隐式声明的复制构造函数定义为已删除;

和 12.8.18

如果类定义声明了移动构造函数或移动赋值运算符,则隐式声明的复制赋值运算符被定义为删除;

该语句a = b;应触发编译器错误。但是,我的编译器 (VC++ 2013 RC) 接受它并改为调用隐式定义的复制分配。

这是编译器的错误吗?

更新:

我已将此问题作为错误提交给microsoft

0 投票
4 回答
1085 浏览

c++ - 你可以用 lambda 比较器交换 std::queue 吗?

我正在尝试使用https://stackoverflow.com/a/709161/837451中的示例通过交换清除 std::queue。但是,由于“已删除函数”错误,它似乎不适用于 lambda 比较器。

最小在职的失败的例子:

编译

我收到以下错误:

g++ -v

我有点好奇这里到底发生了什么,但更重要的是我真的很想知道如何完成这项工作。

0 投票
3 回答
43830 浏览

c++ - 错误 C2280:试图引用已删除的函数

我是游戏开发的新手,对 c++ 也很陌生,但我已经开始开发一个小打砖块游戏。我以前运行过它,但是在重构(引入 ArkanoidGame 类)之后它没有编译,我不知道为什么。

我得到的错误是:

我根本不明白这意味着什么,也不知道该怎么做才能解决它。

我已经包括了有问题的课程:

主要.cpp:

打砖块.h:

ArkanoidGame.cpp:

0 投票
1 回答
2066 浏览

c++ - 错误:使用已删除的函数 boost::filesystem3::directory_iterator

当我尝试编译 C++ 和 qt 项目时,我遇到了这个奇怪的错误:

代码中的任何地方都没有使用 delete(),这个错误是什么意思?发生此类错误时我应该寻找什么?

0 投票
1 回答
3872 浏览

c++ - 对 std::set 使用基于范围的 for> 删除功能

我正在尝试将基于范围的迭代器与一组unique_ptr实例一起使用,但出现以下编译错误:

基本代码如下:

知道为什么这会是一个问题或如何解决它吗?

0 投票
1 回答
133 浏览

c++ - 查找引用了已删除函数的位置

IDE - 桌面版 Visual Studio Express 2013

C++11

问题 - 我有一个显然被复制的类(使用复制构造函数)。如果我这样声明复制构造函数:

它抱怨对已删除函数的引用。我现在已经检查了我的整个代码两次,找不到类的实例将被复制到哪里。

有什么方法可以找到引用的来源?

我已经尝试定义复制构造函数,其中有一个断点,但它从未被命中。

更新

抱歉,它确实显示了引用的位置——在 STL 中的某个分配器中。我设法将其追踪到 std::vector::emplace_back() 调用 - 这必须导致副本。我将对此进行调查。

更新 2

我真是个笨蛋——我有一个 MyClass 的向量......

0 投票
2 回答
9350 浏览

c++ - 错误 C2280:试图引用已删除的函数(试图调用 vector.erase)

我是 C++ 新手。我正在使用 SFML 和 Box2D 开发突破克隆,编译时出现此错误。错误详情:

当我尝试使用 vector.erase 从 std::vector< Tile> 中擦除 Tile 对象时出现错误。

我将 Tiles 推到向量中

我试着擦掉里面的瓷砖

问题是否与移动构造函数/赋值有关?

0 投票
1 回答
2697 浏览

c++ - 实例化 std::mutex 时出现编译器错误

我在我的代码库中广泛使用了 std::mutex。但是,其中一个类根本不允许我将互斥锁添加到其实例变量列表中。我很简单地使用以下方法实例化互斥锁 -

我将上述语句添加到班级成员列表的私有部分。

我收到以下错误 -

我尝试添加互斥锁的类被复制。

正如我所说,我在整个代码库中都使用了互斥锁,所以很奇怪我不能在一个地方实例化互斥锁,而我可以在所有其他地方实例化。你能告诉我这里出了什么问题吗?

0 投票
1 回答
639 浏览

c++ - 使类不可复制的宏

以下宏是否存在使类不可复制的问题?