auto_ptr vs. scoped_ptr
-
ten schrieb:
hustbaer schrieb:
ten, zeig mir eine GC Implementierung für C bzw. C++ und ich zeig dir einen GC der stinkt.
Ernsthaft.gibts da nix vernünftiges?
das erschreckt mich jetzt aber.
man liest doch ständig in den ganzen flamewars, dass man einfach nur eine GC-library mit hinzulinken kann, und schon hat man garbage collection wie die grossen...In C, und wenn man aufpasst was man tut, vielleicht. In grösseren C++ Programmen die man nicht Zeile für Zeile durchgehen will... würde ich es garnicht erst probieren. Zumindest nicht wenn diese viel Speicher verbrauchen und/oder sehr lange laufen sollen - Serverprogramme z.B.
Kurz: ein Collector für C oder C++ mag für einige Programme durchaus geeignet sein. Aber einfach das GC Frameword dazulinken, search & replace drüberlaufen lassen um malloc zu ersetzen bzw. das globale "new" überladen - damit werden etliche Programme nicht gescheit funktionieren.
btw: wieso gibts überhaupt etliche verschiedene typen von smart pointern?
kann nicht mal einer 'ne smartpointerklasse coden, die für alles geht?Naja, shared_ptr (boost) geht ja für sogut-wie-alles. Das Hauptproblem welches ich bei Smartpointern sehe ist: Thread-safety. Wenn man darauf verzichtet hat man zwar einen schnellen Smartpointer, dafür kann man ihn nur innerhalb eines Threads verwenden. Wenn man dagegen einen Thread-safe Smartpointer macht kann man den zwar überall verwenden, dafür ist er langsam (interlocked Befehle).