【发布时间】:2014-02-23 21:23:59
【问题描述】:
我正在尝试实现 this answer 以通过 boost::lockfree::queues 传递字符串。
看起来它确实有效,但是当我在将指针从队列中弹出后尝试计算指针时,它只读出了一个内存地址。
我到处寻找解决方案,但奇怪的是找不到。
如何获取下方ptr的内容?
boost::lockfree::queue<std::string*> queue(some_size);
// push on via new
queue.push(new std::string("blah"));
// pop and delete
std::string* ptr;
if(queue.pop(ptr))
{
std::cout << ptr << std::endl;
delete ptr;
}
结果:
0x7f41fc000950
【问题讨论】:
-
我是傻还是
std::cout << *ptr << std::endl;就够了? -
@Gracchus 请注意,我已删除我的评论。这是一个大脑放屁。
标签: c++ string pointers queue lock-free