c++: dynamic_cast vs reinterpret_cast

Pantelis Koukousoulas pktoss at gmail.com
Mon Sep 10 08:28:00 EEST 2012


2012/9/9 Theodore Lytras <thlytras at gmail.com>:
> Υπάρχει κάποιο μειονέκτημα του dynamic_cast έναντι του reinterpret_cast όταν
> μπορούν να χρησιμοποιηθούν και τα δύο? (Δηλαδή είναι έγκυρο το cast).

Η σωστή απάντηση είναι "εξαρτάται".

> Αυτό που με ανησυχεί όμως είναι οτι διάβασα πως απαιτείται o compiler να έχει
> το RTTI ενεργοποιημένο για να δουλέψει το dynamic_cast. Αυτό που δεν έχω
> καταλάβει είναι: (1) υπάρχει κάτι κακό στο να είναι το RTTI ενεργοποιημένο?
> και (2) αν δεν είναι ενεργοποιημένο και εγώ κάνω κανονικά compile, έχω
> undefined behaviour ή κάτι άλλο κακό, ή απλώς δε γίνεται το run-time checking
> και είναι σαν να έχω reinterpret_cast ??

Για το overhead του RTTI στην πράξη:
http://stackoverflow.com/questions/579887/how-expensive-is-rtti

Θα έλεγα να το δοκιμάσεις μόνος σου στο δικό σου σύστημα. Φτιάξε ένα μικρό
παράδειγμα και κάνε το compile με -fno-rtti και δες τι γίνεται.

Just my 2 drachmas


More information about the Linux-greek-users mailing list