RTTI frage



  • Hi,

    ich würd gerne RTTI in einem Programm von mir benutzen das sehr viel speed braucht, doch ich hab gehört RTTI ist mega lam?

    Stimmt das? Wieso ist RTTI so lam?



  • Wenn du RTTI benutzen musst hast du einen Design-Fehler in deinem Programm.



  • was meinst du mit lam? 😕 😕 😮 😮



  • Natürlich ist RTTI im vergleich zu z.B. static_cast lahm, es heißt schließlich runtime type information...



  • ness schrieb:

    Natürlich ist RTTI im vergleich zu z.B. static_cast lahm, es heißt schließlich runtime type information...

    Aber WARUM ist es lam?



  • Weil es die Typinformationen zur Laufzeit ermittelt und nicht wie static_cast zur kompilierzeit.



  • Weil er versucht zur Laufzeit die Typen heraus zufinden, anstatt das du das selbst schon beim Compilieren machst.



  • static_cast schrieb:

    Wenn du RTTI benutzen musst hast du einen Design-Fehler in deinem Programm.

    Das ist eine Aussage, die so definitiv nicht immer richtig ist.
    RTTI ist nicht unbedingt saulahm. Den Typ zu getten, ist bestimmt recht schnell, dynamic_cast kann aber durchaus böse sein.

    ness schrieb:

    Weil es die Typinformationen zur Laufzeit ermittelt und nicht wie static_cast zur kompilierzeit.

    Artchi schrieb:

    Weil er versucht zur Laufzeit die Typen heraus zufinden, anstatt das du das selbst schon beim Compilieren machst.

    Ne. dynamic_cast ist deshalb lahm, weil es u.U. eine ganze Hierarchie durchgehen muss.
    Eine Klasse kann indirekt und mehrfach erben und 50 verschiedene Dinge sein. Und das muss dynamic_cast alles erkennen.



  • static_cast schrieb:

    Wenn du RTTI benutzen musst hast du einen Design-Fehler in deinem Programm.

    Ist zwar etwas drastisch formuliert, aber es stimmt schon, dass man in vielen Fällen durch ein besseres Design auf RTTI verzichten kann, weil man zB auf Downcasts verzichten kann.

    *** schrieb:

    ich würd gerne RTTI in einem Programm von mir benutzen das sehr viel speed braucht

    Und das klingt nicht gerade danach, als ob du dir viel Gedanken um das Design gemacht hättest.


Anmelden zum Antworten