Ich habe einen Worker -Thread mit a Warteschlange von Std :: String s (in STD: deque ), wo ich mich bewacht möchte, wobei das nächste Element (vorne) der Warteschlange einem lokalen std :: string zuweisen Variable dann .pop_front Das Element aus der Warteschlange und Veröffentlichung des Schutzes (Scoped Operation). Alles, was es tun muss, ist den Zeiger zuzuweisen. Objekte (verweisen auf denselben Zeiger) sind in Ordnung (interne Referenzzählung oder Aufhebung der Interna der bewegten Quelle)?
Code: Select all
void fun()
{
std::string my_string;
{
std::lock_guard guard(my_mutex);
my_string = std::move(deque.front());
deque.pop_front()
}
// ... go on and using my_string below
}