by Guest » 07 Feb 2025, 00:25
Während ich normalerweise meine eigenen Klassen verwende, die vor stl erstellt wurden. Ich habe beschlossen, diese STL -Objekte und Funktionen in einer eigenständigen Bibliothek zu verwenden, die bereits STL verwendete. Ich habe eine Frage zur Übernahme eines Zeigers (ähnlich wie MFC mit einem .detach () Methode/Funktion).
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
}
tia !!
Während ich normalerweise meine eigenen Klassen verwende, die vor stl erstellt wurden. Ich habe beschlossen, diese STL -Objekte und Funktionen in einer eigenständigen Bibliothek zu verwenden, die bereits STL verwendete. Ich habe eine Frage zur Übernahme eines Zeigers (ähnlich wie MFC mit einem .detach () Methode/Funktion).
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]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
}
[/code]
tia !!