потоке выделяю на стеке объект структуры, передаю через очередь и move в другой поток, поидее после этого выход из функции происходит и объекты уничтожаются, но работает
mail_t mail;//= new mail_t;
mail.type = MessageType_t::SCENARIO_SET;
const char *cmsg = (const char *)string_buffer_p;
mail.cmsg = cmsg;
while(!queue_js_app_rx.push(std::move(mail))){};
Я не вижу тут причин, почему это не должно работать, если всё остальное правильно написано.
По сути move это всё равно что передача указателя, если очень упростить. Сами данные у тебя уже где-то лежат, может в куче, может в сегменте глобальных данных. Например, где у тебя хранится string_buffer_p?
Мув в цикле это прострел ноги
Обсуждают сегодня