Page 2 of 2 FirstFirst 1 2
Results 16 to 19 of 19

Thread: Simpele maar doeltreffende stackview bij exception

  1. #16
    Dat wel ja. Voor de zekerheid zou je het nog in een try..finally kunnen zetten, maar dat voegt in dit geval niet zoveel toe, denk ik. Ik vraag me af wat er zou gebeuren als je schrijft:
    Delphi Code:
    1. with Enter('xxx') do
    2. begin
    3.   // code
    4. end;
    Marcov?
    1+1=b

  2. #17
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,357
    Veiliger in de praktijk: bijna zeker ja. Er is vziw geen compiler die op dit moment dit wegoptimalizeert.

    Vanuit theoretisch oogpunt: nee. Want het zou wel kunnen en mogen.

    Goleztrols voorbeeld is nog wat lastiger. Daar zou ik niet eens antwoord op durven geven. Maar als het al niet geheel veilig is, dan komt het al heel erg in de buurt.

    Maar het probleem blijft dat wat jij probeert te gebruiken (een geforceerd moment van deallocatie), is simpelweg geen deel van de interface functionaliteit. Het is en blijft geen blokstructuur, maar een constructie om geheugen vrij tegeven.

    Iemand die dit soort dingen om een of andere reden toch wil, en try except en andere toestanden teveel typewerk vind, raad ik aan meer naar een preprocessor of andere source-rewrite optie te gaan.

  3. #18
    Reader
    Join Date
    May 2002
    Location
    Holland
    Posts
    3,382
    Sorry alvast dat ik erover blijf doorzeuren maar dat laatste begrijp ik niet Marco.
    In mijn primitieve ogen is dat juist wel het geval. Je gebruikt een interface zolang ie nodig is, en wanneer de refcount op 0 komt wordt ie automatisch - geheel gratis en vrijblijvend - gedealloceerd.

    Wat het theoretisch oogpunt betreft: dat snap ik.

  4. #19
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,357
    Quote Originally Posted by EricLang View Post
    Sorry alvast dat ik erover blijf doorzeuren maar dat laatste begrijp ik niet Marco.

    In mijn primitieve ogen is dat juist wel het geval. Je gebruikt een interface zolang ie nodig is, en wanneer de refcount op 0 komt wordt ie automatisch - geheel gratis en vrijblijvend - gedealloceerd.
    Dat klopt. Maar wanneer _precies_ dat soort dingen gebeuren, dat is helemaal een beslissing van de compiler. Het is immers een geautomatiseerd type onder controle van de compiler.

    Statements of blokstructuren echter zijn een harde wetten voor de compiler.
    Het probleem is dat jij een soort blokstructuur gedrag probeert af te dwingen (ervoor wat doen, erna wat doen), met iets wat er niet voor bedoeld is.

    Indien typewerk de reden is om het zo te doen, dan kan je met een sourcecode-rewriter proberen simpele macros te expanden, en zo hetzelfde te bereiken.

Page 2 of 2 FirstFirst 1 2

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •