Lue keskustelun säännöt.
Tervetuloa lukemaan keskusteluja! Kommentointi on avoinna klo 7 - 23.
Tervetuloa lukemaan keskusteluja! Kommentointi on avoinna klo 7 - 23.
Alue: Aihe vapaa
Entisiä Symbian-koodareita täällä? Muistatteko miten cleanup stack toimi
15.01.2024 |
Ja näettekö siitä mahdollisesti joskus vielä painajaisia?
Onneksi nykyään on modernit C++ -poikkeukset käytössä kaikkialla!
Kommentit (1)
Sisältö jatkuu mainoksen alla
Sisältö jatkuu mainoksen alla
Alue: Aihe vapaa
Symbianin cleanup stack liittyi siihen että ainoastaan stackista vapautetaan muistia kun mennään skoopin ulkopuolelle (esim. palataan metodista). Heap-varaukselle muisti jää vapauttamatta exceptionille. Tähän heap-ongelmaan on sitten kehitetty erilaisia ratkaisuja. Nykyisessä C++:ssa on std:auto_ptr (vanha tapa) ja std:unique_ptr (uudempi tapa). Symbianin aikaan ei näitä vielä ollut mutta idea oli vastaava: tehdään "wrapperi" joka stack-vapautuksen kautta kutsuu destruktoria (RAII). Suoraanhan tämä ei liity mitenkään C++-poikkeuksiin vaan RAII-tyylisen toiminnallisuuden piilotukseen uudemmilla C++-versioilla.