Я просто пытался поменять местами данные между двумя приоритетными очередями и получил эту ошибку. Я также немного погуглил и до сих пор не знаю, что здесь не так.
#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_07efac20ebfa61cc8bb35aebd7d81'f7c>> и попытка сослаться на удаленную функцию)