在 boost::lockfree:queue 默认构造函数的情况下断言失败
Assertion failure in case of boost::lockfree:queue default constructor
如何使用boost::lockfree:queue
对象?
我正在尝试编写一个通过默认构造函数构造此类对象的应用程序,但它在 boost 源中给了我断言失败:
BOOST_ASSERT(has_capacity);
如何使用此类的默认构造函数?是否需要通过模板参数指定队列的大小?
容量可以静态给出,因此它甚至在默认构造函数之前。
boost::lockfree::queue<int, boost::lockfree::capacity<50> > my_queue;
该机制类似于模板参数的命名参数。
在科里鲁现场观看
#include <boost/lockfree/queue.hpp>
#include <iostream>
using namespace boost::lockfree;
struct X { int i; std::string s; };
int main()
{
queue<int, boost::lockfree::capacity<50> > q;
}
您可以改用队列的 size_type 构造函数,例如:
#include <iostream>
#include <boost/lockfree/queue.hpp>
int main() {
boost::lockfree::queue<int> queue( 0 );
int pushed = 4;
int popped = 0;
if( queue.push( pushed ) ) {
std::cout << "Pushed " << pushed << std::endl;
}
if( queue.pop( popped ) ) {
std::cout << "Popped " << popped << std::endl;
}
return 0;
}
相关文章:
- 在没有太多条件句的情况下,我如何避免被零除
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 在未初始化映射的情况下,将值插入到映射的映射中
- 是默认情况下分配给char数组常量的值
- 为什么我不能在不创建字符串变量的情况下使用函数的字符串输出
- 如何在不产生任何垃圾的情况下获得C中的像素
- 在已经使用Git的情况下减少编译时间
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- 如何在没有信号的情况下从C++执行QML插槽
- 如何在不知道向量大小的情况下输入向量内部的向量?
- 为什么在某些情况下不写入此文件?
- 为什么Mat类的两个对象可以在不重载运算符+的情况下添加
- 调试断言仅在某些情况下失败?C++
- 如何在不更改命令行的情况下禁用断言
- 在 boost::lockfree:queue 默认构造函数的情况下断言失败
- 在没有-DNDEBUG和-O3的情况下编译时,标准库实现不使用断言有什么原因吗
- 如何在断言同时打开和关闭的情况下构建库
- 在谷歌测试中,如何在断言失败的情况下进行拆卸
- 一个断言宏,在可能的情况下扩展为static_assert
- 在没有运行时环境的情况下断言