Lue keskustelun säännöt.
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
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.