eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingRe: W C++ brak finally?Re: W C++ brak finally?
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!opal.futuro.pl!news.internetia.pl!not-f
    or-mail
    From: Michoo <m...@v...pl>
    Newsgroups: pl.comp.programming
    Subject: Re: W C++ brak finally?
    Date: Mon, 02 Jul 2012 16:54:40 +0200
    Organization: Netia S.A.
    Lines: 43
    Message-ID: <jssct7$mov$1@mx1.internetia.pl>
    References: <jsh11p$abf$1@inews.gazeta.pl> <4...@s...net>
    <jsh2d1$sts$1@inews.gazeta.pl>
    <o...@s...wroclaw.optopol.zawiercie>
    <jshgaa$5r2$1@inews.gazeta.pl>
    <o...@s...wroclaw.optopol.zawiercie>
    <jshl9b$mkp$1@inews.gazeta.pl> <jsij4v$gpn$1@mx1.internetia.pl>
    <jsim37$b11$1@inews.gazeta.pl>
    <1...@g...com>
    <jsjq35$rl9$1@inews.gazeta.pl> <jsk76p$4hh$1@mx1.internetia.pl>
    <4...@s...net> <jsl52g$44j$1@inews.gazeta.pl>
    <s...@j...net> <jsmbj1$4jd$1@inews.gazeta.pl>
    <s...@b...pl>
    <jsrmhr$lhd$1@inews.gazeta.pl>
    NNTP-Posting-Host: 83.238.197.12
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: mx1.internetia.pl 1341241064 23327 83.238.197.12 (2 Jul 2012 14:57:44 GMT)
    X-Complaints-To: a...@i...pl
    NNTP-Posting-Date: Mon, 2 Jul 2012 14:57:44 +0000 (UTC)
    In-Reply-To: <jsrmhr$lhd$1@inews.gazeta.pl>
    X-Tech-Contact: u...@i...pl
    User-Agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:8.0) Gecko/20120216
    Icedove/8.0
    X-Server-Info: http://www.internetia.pl/
    Xref: news-archive.icm.edu.pl pl.comp.programming:198221
    [ ukryj nagłówki ]

    On 02.07.2012 10:36, AK wrote:
    > Użytkownik "Artur M. Piwko" <m...@b...pl> napisał:
    >
    >> Jako wyłączny obserwator wątku chciałbym zaznaczyć, że jeśli coś nie
    >> zachodzi zawsze to nie jest to własność spełniona.
    >
    > Racja. Dokladnie o to chodzi.
    > Nawiasy w C/C++ nie zawsze determinuja kolejnosc "podobliczen",
    Zgadza się, determinują wynik. Nie determinują kolejności obliczeń w
    przypadku gdy nie ma to znaczenia dla wyniku[1], co zresztą napisałem w
    wiadomości będącej początkiem Twojego rantu na mnie [4]

    > (a raczej ~na pol), a wiec wlasnosc ta (uzywanie wylacznie nawiasow
    > do wymuszania tejze kolejnosci) nie jest spelniona.
    Nieprawda. Kompilator zapewnia, że jeżeli wykona optymalizację to nie
    zmieni ona wyniku na inny niż opisany za pomocą wyrażenia. Czyli nawet
    jeżeli liczy inaczej niż to wynika z zapisu to uzyskany wynik jest taki
    jaki został wymuszony nawiasami.[3]

    Np:
    (a+b)+(a+b) zostanie prawdopodobnie policzone na uintach jako (a+b)*2,
    ale już na float nie. W obu przypadkach wynik będzie dokładnie taki jak
    to zapisano nawiasami.

    > W tych jezykach rowniez kolejnosc obliczania podwyrazen
    > jest jednooznacznie zdeterminowana (od lewej do prawej).
    > W C/C++ nie.
    W C++ jest zdefiniowane grupowanie, czyli kolejność obliczeń.
    "Niezdefiniowana kolejność obliczania podwyrażneń" oznacza tylko tyle,
    że standard nie narzuca w jakiej kolejności liczyć niezależne składowe.
    (Np. lewa i prawa strona przypisania.)

    [1] Ściśle mówiąc zapewnienie jest szersze, dotyczy zarówno
    obserwowalnego zachowania jak i efektów ubocznych.
    [3] Standard opisuje "abstrakcyjną maszynę" i na niej definiuje
    operacje. W tym tworze tożsamości znane z matematyki jak np. a/b==1/b*a
    nie są w ogólności prawdziwe, za to prawdziwe są inne np. dla typu char
    w arytmetyce modulo bez trap na przepełnieniu (char)255==-1.
    [4] nntp://jn386g$qrf$...@m...internetia.pl

    --
    Pozdrawiam
    Michoo

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

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: