Articles of rtti

è contro typeof

Quale di questi pezzi di codice è più veloce? if (obj is ClassA) {} if (obj.GetType() == typeof(ClassA)) {} Edit: Sono consapevole che non fanno la stessa cosa.

Accesso all’evento protetto di TWinControl

immagina, vuoi assegnare la tua procedura evento: procedure TSuperObject.DoSomething(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin ShowMessage(‘Yes, I am doing’); end; a qualsiasi TWinControl sul modulo. Normalmente se hai il Panel1 (TPanel) nel modulo, puoi farlo facilmente: Panel1.OnMouseDown:=SuperObject1.DoSomething; Ma se vuoi farlo universalmente, come può essere realizzato? Non è ansible accedere ai membri […]

dynamic_cast da “void *”

In base a questo , void* non ha informazioni RTTI, pertanto la trasmissione da void* non è legale e ha senso. Se ricordo bene, dynamic_cast from void* stava lavorando su gcc. Puoi chiarire il problema.

Quanto è costoso RTTI?

Capisco che ci sia una risorsa colpita dall’uso di RTTI, ma quanto è grande? Ovunque appaia, dico che “RTTI è costoso”, ma nessuno di questi fornisce alcun benchmark o dati quantitativi che reggano la memoria, il tempo del processore o la velocità. Quindi, quanto è costoso RTTI? Potrei usarlo su un sistema embedded dove ho […]

Perché ottengo l’errore “type non ha typeinfo” con un tipo enum

Ho dichiarato il seguente tipo di enum in cui voglio che il primo membro abbia il valore ordinale di 1 (uno) piuttosto che il solito 0 (zero): type TMyEnum = ( meFirstValue = 1, meSecondValue, meThirdValue ); Se chiamo TypeInfo () , ad esempio come parte di una chiamata a GetEnumName () , ottengo un […]

Perché typeid.name () restituisce caratteri strani usando GCC e come si fa a stampare nomi senza maglie?

Come mai quando main.cpp questo main.cpp : #include #include using namespace std; struct Blah {}; int main() { cout << typeid(Blah).name() << endl; return 0; } Compilandolo con GCC versione 4.4.4: g++ main.cpp Ho capito: 4Blah Su Visual C ++ 2008, otterrei: struct Blah C’è un modo per farlo stampare solo Blah o struct Blah […]