eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingTry catch, prawidłowy sposób użycia
Ilość wypowiedzi w tym wątku: 32

  • 21. Data: 2012-06-05 10:13:47
    Temat: Re: Try catch, prawidłowy sposób użycia
    Od: "AK" <n...@n...com>

    Użytkownik " M.M." <m...@N...gazeta.pl> napisał :

    > Faktycznie delete nie wywala się gdy otrzyma null.
    > Trochę się zdziwiłem, pamiętam że się wywalało.

    Nieprawda. Baaardzo dawno temu wywalało sie free ( i teoretycznie moze sie wciaz
    wywalac:).
    delete _z zasady_ (standard C++) nie wywala sie na NULL i nigdy sie nie wywalalo.

    PS: Polecam idiom: delete ptr, ptr = 0;
    PS1: nie polecam idiomu: delete ptr; ptr = 0;

    > To kwestia opcji/kompilatora ?

    Jesli sie wywala to jest kwestia tylko i wylacznie jakosci kompilatora

    AK


  • 22. Data: 2012-06-05 10:16:10
    Temat: Re: Try catch, prawidłowy sposób użycia
    Od: "AK" <n...@n...com>

    Użytkownik <n...@m...invalid> napisał w wiadomości:

    >> To kwestia opcji/kompilatora ?
    > Tak. Ściśle rzecz biorąc, w C++ to UB.

    Nieprawda !

    > RT może to milcząco zignorować,
    > wykonać nieoczekiwane zatrzymanie, lub cokolwiek.

    Nie.
    Dla NULLa po prostu nic sie nie dzieje

    AK


  • 23. Data: 2012-06-05 10:44:52
    Temat: Re: Try catch, prawidłowy sposób użycia
    Od: "Stachu 'Dozzie' K." <d...@g...eat.some.screws.spammer.invalid>

    On 2012-06-05, AK <n...@n...com> wrote:
    > Użytkownik " M.M." <m...@N...gazeta.pl> napisał :
    >
    >> Faktycznie delete nie wywala się gdy otrzyma null.
    >> Trochę się zdziwiłem, pamiętam że się wywalało.
    >
    > Nieprawda. Baaardzo dawno temu wywalało sie free ( i teoretycznie moze sie wciaz
    wywalac:).

    A kto ci tak nakłamał że może?

    --
    Secunia non olet.
    Stanislaw Klekot


  • 24. Data: 2012-06-05 11:41:26
    Temat: Re: Try catch, prawidłowy sposób użycia
    Od: zażółcony <r...@c...pl>

    W dniu 2012-06-05 09:01, Edek Pienkowski pisze:
    > Dnia Tue, 05 Jun 2012 08:43:17 +0200, zażółcony napisal:
    >
    >> W dniu 2012-06-04 19:21, Edek Pienkowski pisze:
    >>
    >>> Mutex to nie jest semafor. Nie ma problemu z zamykaniem go w try. To
    >>
    >> Trochę odbiegamy od tematu, ale ...
    >> Wrzuciłem w google 'mutex', kliknąłem w pierwszy lepszy link:
    >> http://koti.mbnet.fi/niclasw/MutexSemaphore.html
    >>
    >> i masz:
    >> "A mutex is really a semaphore with value 1."
    >> :)
    >> I właśnie to dokładnie miałem na myśli.
    >
    > Jak znajdę link w sieci do psoszczura, to uwierzysz że psoszczur
    > istnieje?

    Zasugerowałeś odwrócony związek przyczynowo-skutkowy.
    A tymczasem najpierw była wiara, a potem link.
    Wiara ma inne, znacznie wcześniejsze podstawy, z czasów,
    kiedy internet kojarzyło się jeszcze z luksusem
    a google nie istniał :)

    A tak na serio - ja tam się upierać nie będę bo i po co.
    Nie wiem, skąd Twoje parcie, by te dwie sprawy rozróżniać,
    czy to kwestia tego, ze masz na myśli jakąś konkretną
    implementację mutexów w postaci obiektowej, czy zawężasz
    ich funkcję do pracy w wątkach, a nie między procesami
    czy jeszcze coś innego. Czy może utożsamiasz mutex
    z jakimś rodzajem tokena - wszystko to zawiera jakiś
    element racji.
    Podobnie, jak w wielu kontekstach rację zawiera
    twierdzenie, że muteks to funkcjonalnie semafor 0-1.


  • 25. Data: 2012-06-05 12:36:42
    Temat: Re: Try catch, prawidłowy sposób użycia
    Od: Edek Pienkowski <e...@g...com>

    Dnia Tue, 05 Jun 2012 11:41:26 +0200, zażółcony napisal:

    > W dniu 2012-06-05 09:01, Edek Pienkowski pisze:
    >> Dnia Tue, 05 Jun 2012 08:43:17 +0200, zażółcony napisal:
    >>
    >>> W dniu 2012-06-04 19:21, Edek Pienkowski pisze:
    >>>
    >>>> Mutex to nie jest semafor. Nie ma problemu z zamykaniem go w try. To
    >>>
    >>> Trochę odbiegamy od tematu, ale ...
    >>> Wrzuciłem w google 'mutex', kliknąłem w pierwszy lepszy link:
    >>> http://koti.mbnet.fi/niclasw/MutexSemaphore.html
    >>>
    >>> i masz:
    >>> "A mutex is really a semaphore with value 1."
    >>> :)
    >>> I właśnie to dokładnie miałem na myśli.
    >>
    >> Jak znajdę link w sieci do psoszczura, to uwierzysz że psoszczur
    >> istnieje?
    >
    > Zasugerowałeś odwrócony związek przyczynowo-skutkowy.
    > A tymczasem najpierw była wiara, a potem link.
    > Wiara ma inne, znacznie wcześniejsze podstawy, z czasów, kiedy internet
    > kojarzyło się jeszcze z luksusem a google nie istniał :)
    >
    > A tak na serio - ja tam się upierać nie będę bo i po co. Nie wiem, skąd
    > Twoje parcie, by te dwie sprawy rozróżniać,
    > czy to kwestia tego, ze masz na myśli jakąś konkretną implementację
    > mutexów w postaci obiektowej, czy zawężasz ich funkcję do pracy w
    > wątkach, a nie między procesami czy jeszcze coś innego. Czy może
    > utożsamiasz mutex z jakimś rodzajem tokena - wszystko to zawiera jakiś
    > element racji.
    > Podobnie, jak w wielu kontekstach rację zawiera twierdzenie, że muteks
    > to funkcjonalnie semafor 0-1.

    Niby tak, widziałem nawet implementację mutexa, takiego wątkowego, za
    pomocą semafora, takiego z IPC, w końcu niby można używać IPC tylko z
    jednego procesu. Ale to rozwiązanie nie było za fajne i w szczegółach
    semafor i mutex zaczynają mieć inne właściwości, żeby mieć rekursywny
    mutex dla wygody tak jak w Javie, gdzie każdy Object jest rekursywnym
    mutexem, o ile pamiętam implementacja za pomocą semafora wygałaby thread
    local gdyby nie fakt, że thread local w IPC nie istnieje więc tam
    rozwiązanie było zakręcone na kilka nowych ciekawych sposobów.

    Ale ok, w ramach rozmowy o tym a nie kodu można powiedziedzieć,
    że mutex czy inny prosty lock to semafor 0/1.

    Edek


  • 26. Data: 2012-06-05 14:52:32
    Temat: Re: Try catch, prawidłowy sposób użycia
    Od: n...@m...invalid

    W dniu 5.06.2012 r. 7:25, Waldek M. pisze:
    > Dnia Tue, 05 Jun 2012 00:47:26 +0200, n...@m...invalid napisał(a):
    >>> Faktycznie delete nie wywala się gdy otrzyma null.
    >> Tak. Ściśle rzecz biorąc, w C++ to UB. RT może to milcząco zignorować,
    > Standard 5.3.5, par. 1,2 (expr. delete):
    > Delete na NULL jest jak najbardziej dopuszczalny i nie jest to UB.
    Przyjąłem, dziękuję, wycofuję.


  • 27. Data: 2012-06-05 14:53:26
    Temat: Re: Try catch, prawidłowy sposób użycia
    Od: n...@m...invalid

    W dniu 5.06.2012 r. 10:16, AK pisze:
    > Użytkownik <n...@m...invalid> napisał w wiadomości:
    >
    >>> To kwestia opcji/kompilatora ?
    >> Tak. Ściśle rzecz biorąc, w C++ to UB.
    >
    > Nieprawda !
    W rzeczy samej.


  • 28. Data: 2012-06-05 16:47:21
    Temat: Re: Try catch, prawidłowy sposób użycia
    Od: Andrzej Jarzabek <a...@g...com>

    On 05/06/2012 11:36, Edek Pienkowski wrote:
    > Dnia Tue, 05 Jun 2012 11:41:26 +0200, zażółcony napisal:
    >
    >>>> "A mutex is really a semaphore with value 1."
    >
    > Niby tak, widziałem nawet implementację mutexa, takiego wątkowego, za
    > pomocą semafora, takiego z IPC, w końcu niby można używać IPC tylko z

    Raczej w powyższym zdaniu nie chodziło o semafor taki z IPC tylko o taki
    z Dijkstry.

    > jednego procesu. Ale to rozwiązanie nie było za fajne i w szczegółach
    > semafor i mutex zaczynają mieć inne właściwości, żeby mieć rekursywny
    > mutex dla wygody tak jak w Javie, gdzie każdy Object jest rekursywnym

    No ale mutex jako taki (bez dodatkowego określenia) rekursywny nie jest.
    Rekursywny jest "rekursywny mutex".


  • 29. Data: 2012-06-05 17:12:35
    Temat: Re: Try catch, prawidłowy sposób użycia
    Od: "AK" <n...@n...com>

    Użytkownik <n...@m...invalid> napisał:

    >W dniu 5.06.2012 r. 10:16, AK pisze:
    >> Użytkownik <n...@m...invalid> napisał w wiadomości:
    >>
    >>>> To kwestia opcji/kompilatora ?
    >>> Tak. Ściśle rzecz biorąc, w C++ to UB.
    >>
    >> Nieprawda !
    > W rzeczy samej.

    Dopowiem:
    aostreznie (!) dyskusji :) mialo na celu _wylacznie_ wbicie do glowy
    szczegolnie mlodym adeptom w/w faktu.

    Po prostu zbyt czesto widze kod upstrzony tak:

    if ( ptr != NULL )
    {
    delete ptr;
    }

    zamiast:

    delete ptr, ptr = NULL;

    AK


  • 30. Data: 2012-06-05 17:15:46
    Temat: Re: Try catch, prawidłowy sposób użycia
    Od: "AK" <n...@n...com>

    Użytkownik <n...@m...invalid> napisał:

    >W dniu 5.06.2012 r. 10:16, AK pisze:
    >> Użytkownik <n...@m...invalid> napisał w wiadomości:
    >>
    >>>> To kwestia opcji/kompilatora ?
    >>> Tak. Ściśle rzecz biorąc, w C++ to UB.
    >>
    >> Nieprawda !
    > W rzeczy samej.

    Dopowiem:
    zaostrzenie (!) dyskusji :) z mej strony mialo na celu _wylacznie_ wbicie do glowy
    szczegolnie mlodym adeptom C++ w/w faktu.

    Po prostu zbyt czesto widze kod upstrzony tak:

    if ( ptr != NULL )
    {
    delete ptr;
    }

    zamiast:

    delete ptr, ptr = NULL;

    AK

strony : 1 . 2 . [ 3 ] . 4


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: