Ab wann sind Typinformationen verfügbar?



  • Ab wann sind Typinformationen verfügbar?
    Geht z.B. das hier:

    #include <iostream>
    #include <string>
    
    using namespace std;
    
    string g_Str = typeid(string).name();
    int main()
    {
      cout << g_Str << endl;
      return 0;
    }
    


  • immer und überall wenn RTTI aktiviert ist



  • Also auch, wenn globale Objekte erzeugt werden (vor main)?



  • hast mit ach und krach die vorschule bestanden und machst jetzt auf wichtig oder was? 😡


  • Mod

    Steven@work schrieb:

    Also auch, wenn globale Objekte erzeugt werden (vor main)?

    Ja, der Standard garantiert, dass der dynamische Typ eines typeid-Ausdrucks const std::type_info oder const Name ist (wobei Name eine von std::type_info abgeleitete Klasse ist). Das impliziert, dass dieses type_info-Objekt bereits erzeugt wurde. Die andere zu erfüllende Bedingung besteht darin, dass wenn das Argument ein lvalue eines polymorphen Klassenobjektes ist, dieses Objekt bereits konstruiert wurde (aus dem Konstruktor oder Destruktor heraus - bzw. einer Funktion, die von diesen aus aufgerufen wurde - darf typeid ebenfalls eingesetzt werden, wenn es sich um das Objekt handelt, dass gerade konstruiert wird).



  • thread ist 5 jahre alt



  • lili schrieb:

    thread ist 5 jahre alt

    😮 Gut, dass Du darauf hingewiesen hast ....

    Ist ja eine neue Form von Trollerei, die ich noch nicht kannte.
    Werde ich mir (hoffentlich) merken.

    Gruß,

    Simon2.


Log in to reply