我只是试图在两个优先级队列之间交换数据并得到这个错误。我也做了一些谷歌搜索,但仍然不知道这里有什么问题。
#include <queue>
class Node
{
public:
int idx;
};
auto greater = []( const Node& a, const Node& b) {return a.idx > b.idx; };
using QUEUE = std::priority_queue<Node, std::vector<Node>, decltype(greater)>;
void foo(QUEUE& a)
{
QUEUE b(greater);
a.swap(b);
}
int main()
{
}
这是完整的错误消息:
错误 C2280 '< lambda_07efac20ebfa61cc8bb35aebd7d81f7c> &<< lambda_07efac20ebfa61cc8bb35aebd7d81f7c>>::operator =(const << lambda_07efac20ebfa61cc8bb35aebd7d81f7c>> &)':试图引用已删除的函数