c++ - muQueue.front() 给出了 const 实例,即使我没有将它标记为 const
问题描述
我在这个程序中遇到问题:
#include <iostream>
#include <string>
#include <queue>
#include <functional>
int main()
{
class Buffer{
public:
void consumed(size_t s) {
//alter something inside Buffer
}
};
std::queue<Buffer> bufferFifo;
typedef std::function<void()> Task;
std::queue<Task> tasks;
auto b = bufferFifo.front();
tasks.emplace([b]() {
b.consumed(0);
});
}
我在程序中遇到的错误是:
错误:成员函数“consumed”的“this”参数的类型为“const libopenvpn::Buffer<unsigned char *, libopenvpn::GenericObjectHolder>”,但函数未标记为 const b.consumed(r->size());
但是当我在在线编译器上创建这个最小可行示例时遇到的错误:http://cpp.sh/9zksg是这样的:
In lambda function:
20:25: error: passing 'const main()::Buffer' as 'this' argument of 'void main()::Buffer::consumed(size_t)' discards qualifiers [-fpermissive]
我相信这是同样的错误。看起来好像是这样,b
被标记为const
即使我没有在任何地方使它成为 const 。
为什么是常量?
解决方案
推荐阅读
- java - 有没有办法在启动应用程序时自动捕获图像?
- google-cloud-platform - GCP Compute Engine 无法使用 ssh
- c# - 我需要用 n 个数字制作一个随机生成的数组吗?
- c++ - 如何使用 MinGW 将静态 GLEW 库链接到 CMake 项目?
- python - 在 Python 中并行化函数调用
- google-cloud-platform - 参数从 rest api 传递到数据流作业时出错 - 云函数
- c# - C#:是否有 IList 的 HashSet 类比?
- json - 来自 Openweathermap API 的 Swift 天气数据?
- python - 我的土壤湿度传感器没有从我的 ESP32 读取数据
- python - 绘制 Pandas 系列的 CDF,索引为 x 轴