Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Opet bag GNU C++ prevodioca!

[es] :: C/C++ programiranje :: Opet bag GNU C++ prevodioca!

[ Pregleda: 1995 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
*.mts.telekom.rs.



+2789 Profil

icon Opet bag GNU C++ prevodioca!05.03.2011. u 20:53 - pre 159 meseci
Hteo sam da isprobam zanimljiv fenomen o broju u Mandelbrotovom skupu. Program dajem u prilogu.

Koristim g++ 4.5.0 pod 32-bitnim openSUSE 11.3 sistemom i sve radi lepo bez optimizacije. Međutim, uključim li optimizaciju, program puca!

Program radi ispravno ako se operator + na sledeći način:

Code:
complex operator+ (const complex &z) const {
    complex result(*this);
    
    result += z;
    
    return result;
}


ili ako u main funkciji z1 računam sa

Code:
z1 = z*z;
z1 += c;


Voleo bih da mi još neko potvrdi da je ovo bag, pa da ga prijavljujem.

[Ovu poruku je menjao Nedeljko dana 05.03.2011. u 22:39 GMT+1]
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
Prikačeni fajlovi
 
Odgovor na temu

Texas Instruments

Član broj: 227540
Poruke: 272
95.180.72.*



+61 Profil

icon Re: Opet bag GNU C++ prevodioca!05.03.2011. u 23:34 - pre 159 meseci
g++ mandelbrot.cpp -o mandelbrot
./mandelbrot
3.1416000000000002569

g++ mandelbrot.cpp -o mandelbrot -O3
segmentation fault

g++ --version

g++ (Ubuntu/Linaro 4.4.4-14ubuntu5) 4.4.5
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


Ubuntu 10.10
 
Odgovor na temu

Goran Rakić
Beograd

Član broj: 999
Poruke: 3766

Sajt: blog.goranrakic.com


+125 Profil

icon Re: Opet bag GNU C++ prevodioca!05.03.2011. u 23:46 - pre 159 meseci
Nedostaje ti return *this; u operatorima =, += i -=

Nakon toga kod mene radi i sa optimizacijom. Greška se prikazuje ako prevedeš sa -Wall opcijom.

http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
 
Odgovor na temu

kiklop74
Darko Miletić
Buenos Aires

Član broj: 78422
Poruke: 569
*.telecentro-reversos.com.ar.

Sajt: ar.linkedin.com/pub/darko..


+13 Profil

icon Re: Opet bag GNU C++ prevodioca!06.03.2011. u 00:03 - pre 159 meseci
A sta se desava kada izmenis nekoliko operatora koji su nekompletni ( ne vracaju rezultat ):

Code:


    complex& operator= (const complex &z) {
    if (this != &z) {
        re = z.re;
        im = z.im;
    }
    return *this;
    }
//...

    complex& operator+= (const complex &z) {
    re += z.re;
    im += z.im;
    return *this;
    }

//...

    complex& operator-= (const complex &z) {
    re -= z.re;
    im -= z.im;
    return *this;
    }





Tko leti vrijedi
 
Odgovor na temu

kiklop74
Darko Miletić
Buenos Aires

Član broj: 78422
Poruke: 569
*.telecentro-reversos.com.ar.

Sajt: ar.linkedin.com/pub/darko..


+13 Profil

icon Re: Opet bag GNU C++ prevodioca!06.03.2011. u 00:04 - pre 159 meseci
eto pretekose me :)
Tko leti vrijedi
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
*.mts.telekom.rs.



+2789 Profil

icon Re: Opet bag GNU C++ prevodioca!06.03.2011. u 00:17 - pre 159 meseci
O, hvala! Koji mi je đavo! Svašta! Ne mogu da verujem da sam toliki slepac da ne vratim *this. Čak ni da uključim upozorenja!

@kiklop74
U ovom slučaju provera da li je &z==this nije potrebna, ali znam da je u opštem slučaju potrebna.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
*.mts.telekom.rs.



+2789 Profil

icon Re: Opet bag GNU C++ prevodioca!06.03.2011. u 00:18 - pre 159 meseci
U svakom slučaju, dobro je da sam se prvo javio ovde, da ne prijavljujem kao "bag" nešto što nije 100% provereno.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

kiklop74
Darko Miletić
Buenos Aires

Član broj: 78422
Poruke: 569
*.telecentro-reversos.com.ar.

Sajt: ar.linkedin.com/pub/darko..


+13 Profil

icon Re: Opet bag GNU C++ prevodioca!06.03.2011. u 00:41 - pre 159 meseci
Da parafraziram poznatu kolumbijsku sapunicu (sin tetas no hay paraiso) - "bez ukljucenih upozorenja nema raja"


Tko leti vrijedi
 
Odgovor na temu

Goran Rakić
Beograd

Član broj: 999
Poruke: 3766

Sajt: blog.goranrakic.com


+125 Profil

icon Re: Opet bag GNU C++ prevodioca!06.03.2011. u 00:59 - pre 159 meseci
Da sam se kao ti opekao sa onim problemom u proširenoj tačnosti, ni ja ne bih verovao kompilatoru i odmah bih rekao da je opet kriv ;)
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
 
Odgovor na temu

pera89
Petar Dobrota
Zajechar

Član broj: 51904
Poruke: 64
*.dynamic.isp.telekom.rs.



Profil

icon Re: Opet bag GNU C++ prevodioca!06.03.2011. u 16:56 - pre 159 meseci
Citat:
@kiklop74
U ovom slučaju provera da li je &z==this nije potrebna, ali znam da je u opštem slučaju potrebna.


U ovom slucaju operator= nije potreban, kao ni konstruktor kopije.
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
*.mts.telekom.rs.



+2789 Profil

icon Re: Opet bag GNU C++ prevodioca!06.03.2011. u 18:02 - pre 159 meseci
I to je tačno, jer podrazumevane varijante rade na potpuno isti način, ali eto, hteo sam da raspišem. Narafski.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

[es] :: C/C++ programiranje :: Opet bag GNU C++ prevodioca!

[ Pregleda: 1995 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.