Problemy s gcc

Zbynek Vyskovsky rat na scssoft.com
Středa Září 20 11:20:48 CEST 2000


> > 4)
> > Jak zavolat konstruktor na jiz alokovanou pamet? U vetsiny kompilatoru
> > to jde zapisem ((class0 *)mem)->class0::class0(); U gcc jsem na to
> > neprisel.
> 
> Ale fuj. Na tohle je preci placement new.
 Jenze ja tu pamet uz mam alokovanou. Problem je hlavne v tom, ze je az od
nejakeho offsetu v jiz alokovane pameti, takze me ani overloadnuty new
nezachrani.

> > 4)
> > Nedokazu vypnout warning (-W???) pro nasledujici kod:
> > class c_int {
> >   int val; operator int &() { return val; }
> >   operator const int &() { return val; }
> > };
> 
> Ty dve funkce se lisi jen typem navratove hodnoty. Prepiste tu 
> druhou na
> operator const int &() const {return val; }
 Jo, ten const tam puvodne byl (jinak by to byl error, ne warning),
takze znovu stejny dotaz s Vasim patchem :-)

> > 5)
> > V pripade, ze se ve vyrazu povetsinou se skladajiciho z doublu objevi
> > float, tak gcc ulozi mezivysledek na stack jako float a potom znovu
> > loadne zpatky - typicke je to u kodu float f(double v) { return v; }
> > Mozna to splnuje ANSI, nebezpeci se zaokrouhlovanim jsem si vedom, ale
> > stejne bych to radeji vypnul, takze - existuje nejaky -f ?
> 
> Pokud jste opravdu tvrdak, zkuste -Dfloat=double :-) Ne, vazne: 
> Vami ukazovana funkce ma zarucene nejaky duvod, aby konverzi z 
> double do float provadela, nebo ne? Pokud ne, je resenim funkci 
> opravit.
 Ta funkce byla jenom jednoduchy priklad. Vetsinou se tenhle kod
objevuje ve vyrazech, kde je mi tohle ukladani k nicemu...

--
 Zbynek Vyskovsky
 Engine/Game-AI Development, SCS Software
  rat na scssoft.com                 talk: rat@{ns,mail}.scssoft.com
  http://www.scssoft.com/         ICQ: 55391944




Další informace o konferenci Linux