qt, -fno-rtti i okolice

Martin Dalecki dalecki w cs.net.pl
Śro, 8 Gru 1999, 00:26:34 CET


Marcin 'Qrczak' Kowalczyk wrote:
> 
> Tue, 07 Dec 1999 21:09:45 +0100, Martin Dalecki <dalecki w cs.net.pl> pisze:
> 
> > > `-fno-rtti'
> > >      Disable generation of the information used by C++ runtime type
> > >      identification features (`dynamic_cast' and `typeid').  If you
> > >      don't use those parts of the language (or exception handling,
> > >      which uses `dynamic_cast' internally), you can save some space by
> > >      using this flag.
> > >
> > > -fno-rtti powoduje, że kompilowany język nie jest już poprawnym C++.
> >
> > Bzdura.
> 
> W C++ jest dynamic_cast. -fno-rtti powoduje, że dynamic_cast przestaje
> działać - albo dokumentacja się myli.

To dlugo jeszcze nie znaczy, źe program:

int main(int argc, char *argv[])
{
	return 0;
}

jest niepoprawny w C++ pomimo, śe nie uzywa wszelkich właściwości tego
języka.
 
> > > Na przykład specyfikacja wymaga, żeby new przy braku pamięci rzucało
> > > wyjątek. dynamic_cast jest integralną częścią języka.
> >
> > Excpetions nie mają nic wspólnego z run time type informations.
> 
> To dlaczego zacytowany fragment dokumentacji mówi co innego?

Proszę oto tabliczka wartości dla junktora, zwanego alternatywą (do
ktorego się chyba 
odnosisz):

1 1    	1
1 0	1
0 1	1
0 0	0
 
> > Standard pozwala na ignorwoanie throw(nomem).
> 
> Nie umiem wyciągnąć takiego wniosku z draftu standardu.

Co nie zabronione jest doskonale dozwolone... W przeciwieństwie do np.
Javy
C++ nie wymaga wyłapywania wszystkich wyjątków. BTW. standard nawet nie
definiuje co zwraca
new, jeśli się niepowiedzie...

--
	Marcin Dalecki



Więcej informacji o liście dyskusyjnej pld-devel-pl