错误传递volatile std :: queue丢弃限定符[-fpermissive] C 98
发布时间:2020-12-15 04:28:46 所属栏目:Java 来源:网络整理
导读:我有一个 volatile std::queueint requestQueue; 当我尝试在函数内调用它的任何方法(pop,push,empty,front等)时,例如: while (!requestQueue.empty()){ ...do something } 我收到以下错误. robot.cpp:43:31: error: passing 'volatile std::queueint' as 't
我有一个
volatile std::queue<int> requestQueue; 当我尝试在函数内调用它的任何方法(pop,push,empty,front等)时,例如: while (!requestQueue.empty()){ ...do something } 我收到以下错误. robot.cpp:43:31: error: passing 'volatile std::queue<int>' as 'this' argument of 'bool std::queue<_Tp,_Sequence>::empty() const [with _Tp = int,_Sequence = std::deque<int,std::allocator<int> >]' discards qualifiers [-fpermissive] 我在网上发现可能需要进行类型转换,但我不确定是否是这种情况. 有任何想法吗?提前致谢. 更新 1)程序使用这种数据结构来存储一系列请求,以便服务器可以以自己的服务速率获取请求. 2)volatile用于支持在不同核上运行的功能之间的数据共享. 3)我使用的库的文档说明了以下关于使用的文档 >使用static volatile声明全局变量,以便在不同核心中运行的函数之间共享. 解决方法
队列成员函数不是volatile限定的,因此您不能在易失性队列实例上使用它们.基本上,如果你必须有一些易变的东西,那么这不是你正在寻找的数据结构.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |