Tôi đang cố gắng đặt std::string
s vào boost::lockfree::queue
s để chủ đề của tôi có thể cập nhật lẫn nhau với dữ liệu mới.cách đặt std :: string into boost :: lockfree :: queue (hoặc thay thế)?
Khi tôi cố gắng sử dụng boost::lockfree::queue<std::string> updated_data;
, g++
nói:
In instantiation of 'class boost::lockfree::queue >':
error: static assertion failed: (boost::has_trivial_destructor::value)
error: static assertion failed: (boost::has_trivial_assign::value)
Tôi đã shown generally what these errors mean, nhưng tôi không có hy vọng bao giờ sửa chữa này bản thân mình, như tôi là gần như hoàn toàn mới để C++.
Có cách nào khác để truyền dữ liệu văn bản giữa các chủ đề với lockfree
không? Nếu không, vui lòng chỉ cho tôi cách đặt std::string
vào một số boost::lockfree::queue
.
Điều này là không hoàn toàn đúng: bạn có thể đặt con trỏ nguyên trong hàng đợi và giải phóng chúng khi bạn bật con trỏ. ví dụ 'queue-> consum_all ([] (std :: string * str) {do_something (str); delete str;});' – Zero