gpt4 book ai didi

c++ - boost::remove_if 导致错误(只读变量不可赋值)

转载 作者:行者123 更新时间:2023-11-28 07:26:59 25 4
gpt4 key购买 nike

我的方法看起来像这样,在 vector 中编译期间出现错误“Read-only variable is not assignable”。可能是什么问题?

int DownloadManager::RemoveDownload(const char *escapedTitle, const char *fileId)
{
boost::remove_if(Core::defaultCore().GetSocketsQueue()->GetQueue(), [&](SocketConnection* socket) {
if (strcmp(escapedTitle, socket->GetDownload()->escaped_title.c_str()) == 0 && strcmp(fileId, socket->GetDownload()->fileId.c_str()) == 0)
{
Core::defaultCore().GetDownloadQueue()->Remove(socket->GetDownload());

return true;
}

return false;
});

return 0;
}

粘贴只是为了展示上面的 GetQueue() 的样子。

std::vector<SocketConnection*> GetQueue()
{
return this->sockets_queue;
}

最佳答案

您应该从 GetQueue 返回引用,因为现在您正试图从临时变量中删除,这是不允许的,因为 remove_if 第一个参数应该是引用,没有从临时变量到引用的转换。

关于c++ - boost::remove_if 导致错误(只读变量不可赋值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18593718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com