On Mon, 1 Oct 2001 16:22:03 +0300
"Mihai Marusca" <[EMAIL PROTECTED]> wrote the immortal words:

> 
> >>>imi explica si mie cineva ce inseamna chestia de mai jos?
> >>>
> >>>     if ((a ? a : 0) (x,y))
> >>>
> > Facand teste pe tema asta:

> In C++ nu-mi pot imagina un scenariu in care povestea asta s-ar putea
> compila. a(x,y) ar avea sens (cu operator(x,y) definit pt. a, dar nu vad
cum
> s-ar compila a:0 (care trebuie sa fie de acelasi tip), adica integer sau
> pointer; dupa aia n-ar avea sens (x,y).

Intre noi fie vorba, daca avem bool?x:y, x si y trebuie sa aiba acelasi
tip sau sa se poate converti la un acelasi tip; Nu am auzit nicaieri ca
acest tip trebuie sa fie numeric sau pointer. Eu cred ca poate fi orice
tip. Tipul expresiei va fi tipul comun al lui x si y; deci, daca x e de
tipul A, y se poate converti la A folosind A(int), => au tipul comun A, si
expresia va fi de tipul A, si va avea o valoare in functie de ce
returneaza A::operator bool(), a sau A::A(0); la chestia asta, fiind un
obiect valid de tipul A se poate apela (). Da, eu nu as scri niciodata un
cod de genul acesta, dar  pot exista anumite side-effect-e pe care nu le
poti realiza usor citind sursa. Si am vazut programatori la viata mea care
dupa ce scriu coduri functionale, 'ca sa optimizeze' il fac foarte
obfuscat.
eu am gcc version 2.95.2 19991024 (release)
daca ai vreo versiune mai noua de compilator incerca sa vezi daca se
compileaza chestiunea din mailul anterior.

oricum, din ce a spus omul ca e codul.. se modifica problema.. daca sunt
niste define-uri? nu ca te-ai dus la vale incercand sa intelgi?
-- 
                      The Marius
---
Send e-mail to '[EMAIL PROTECTED]' with 'unsubscribe rlug' to 
unsubscribe from this list.

Raspunde prin e-mail lui