加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

错误传递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限定的,因此您不能在易失性队列实例上使用它们.基本上,如果你必须有一些易变的东西,那么这不是你正在寻找的数据结构.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读