Aktywne Wpisy

rancorn +32
"słyszałeś że pisarski napisał książkę?
Słyszałem.
A czytałeś?
Nie.
Jak wiekszosc.
*SMIECH PAWIANA*
Słyszałem.
A czytałeś?
Nie.
Jak wiekszosc.
*SMIECH PAWIANA*
źródło: 1000053392
Pobierz
Napiszcie mi coś sympatycznego.





Nie wiem czy tak się da? Tworzę shared pointer, czyszczę listę i zamykam funkcję więc ostatni pointer ginie... czyli i "podmiot liryczny" ginie, ale w którym momencie? Czy coś może pójść nie tak? W programie to nie do końca tak wygląda, ale sytuacja ta sama.
#programowanie #cpp
steps.clear()odpali się jakiś kod, który będzie uderzał do jakiegokolwiek pola TaskEnd (tutaj chyba tak nie jest, ale mówię o przyszłości, wystarczy, że dodasz jakieś pole np std::string) to będziesz miał UB. Rozwiązanie: kod, w którym nie ma cykliauto ptr, czyli obiekt zniknie dopiero po zwinięciu stosu i to w wypadku kiedy wywoła na referencji do elementu polasteps, a nie kopii tegoshared_ptr.@s_theCapt: Metoda, która niszczy swój obiekt, na którym jest wywoływany to antywzorzec.
@s_theCapt: tak, ale po tym usunięciu ptr dalej odpalają się destruktory zmiennych lokalnych będących przed
ptr. Czy to jest legalne: szczerze nie wiem, na pewno jest to brzydkie. Przykładowo wystarczy, że ktoś bez dogłebnęgo czytania kodu doda jakiś mutex przy użyciustd::lock_guardna samym początku funkcji.@lionbest: tak, nie doczytałem
execzwraca się jakiś status i po nim rozpoznaje jakie operacje zrobić na danym obiekcie.