我需要做一些高性能的 c++ 东西,这就是为什么我需要尽可能避免复制数据。
因此,我想直接将字符串缓冲区分配给 zmq::message_t 对象而不复制它。但似乎有一些避免成功发送的字符串释放。
这是一段代码:
for (pair<int, string> msg : l) {
comm_out.send_int(msg.first);
comm_out.send_int(t_id);
int size = msg.second.size();
zmq::message_t m((void *) std::move(msg.second).data(), size, NULL, NULL);
comm_out.send_frame_msg(m, false); // some zmq-wrapper class
}
如何避免在发送消息之前释放字符串?字符串何时被准确释放?
问候