Я пытаюсь реализовать этот ответ, чтобы передать строки через 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
Чтобы получить содержимое строки, просто разыщите указатель, duh. ;-)
std::cout << *ptr << std::endl;
std::cout << *ptr << std::endl;
хватает?