dynamic_cast & virtual
-
Ich finde ja boost::any immer noch viel schöner als void* (und oft auch schöner als Klassenhierachien, im Plugin-Beispiel aber eher nicht). Mein Vorposter wird mir mal wieder den Schädel für Performance-Verschwendung abreißen und beim Plugin-System könnte es auch sehr gerechtfertigt sein, aber meine zwei void*-Probleme habe ich ganz schnell auf boost::any umgestellt und lebe jetzt sehr glücklich damit. (Eines davon war ein klassischer UserData-Parameter, den ich einem kleinen ListView-Control mit jedem Item gebe. Sehr praktisch.)
C++ ist also nicht ganz machtlos, wo andere Sprachen sich auf ihre allgegenwärtige Object-Basisklasse berufen und void* ist wirklich kein Problem...
-
@volkard wenns so einfach wär^^
normalerweise eine gute idee, aber mein projekt kann man als "experiment eines verrückten" bezeichnen.
ich wollte mal aus lernzwecken versuchen(bzw bis jetzt nur aufm blatt papier), ein programm zu schreiben, dessen funktionalität komplett von den plugins abhängt,dh es besitzt keinen "core" bzw einen mainframe sondern nur plugins, die sich gegenseitig die informationen zuschieben und berechnen. Am ende soll irgendwas sinnvolles rauskommen^^.als beispiel ausgedrückt:
eingabeplugin sendet daten zum berechnungsplugin, berechnungsplugin sendet daten zum ausgabeplugin.in dem experiment kenn ich nicht mehr von den plugins, als dass sie daten enpfangen und senden, was sie tun, und wie sie es tun, davon hab ich keine ahnung. Es ist wie gesagt nur ein experiment, und muss nicht unbedingt schnell sein oder am ende einen sinn haben, es soll nur funktionieren(und flexibel sein)^^
aber des is doch schon ziemlich ot^^
-
otze schrieb:
in dem experiment kenn ich nicht mehr von den plugins, als dass sie daten enpfangen und senden, was sie tun, und wie sie es tun, davon hab ich keine ahnung. Es ist wie gesagt nur ein experiment, und muss nicht unbedingt schnell sein oder am ende einen sinn haben, es soll nur funktionieren(und flexibel sein)^^
aber der sender kennt seinen empfänger? das allein würde mir schon reichen.
-
nein
bzw er kann einen zeiger drauf bekommen, und dann in seinen geliebten typ umcasten, das kann aber schonmal ins auge gehen, wenn plugins gewechselt werden(und das sollte ja durch das ganze experiment ermöglicht werden, beliebige austauschbarkeit)
-
"ich sage aber nicht, daß du sowas verwenden sollst. ich vermute, daß dynamic_cast in flachen klassenhierarchien noch einigermaßen schnell ist. ausgemessen habe ich dyamic_cast nie, weil ich sowas nicht verwende. "
würd mich mal sehr interesieren, hat das vieleicht schon jemand ?
wär dankbar fürn link
-
Was willst du denn messen? Er wird schon nicht der schnellste sein. Und da du ihn eh vermeidest, so gut es geht, macht dir das auch keine Probleme.
-
wahrscheinlich hat dynamic _cast nichtmal eine konstante aufrufzeit...