Diskussion:C++/CLI

message: Gibt es Quellenangaben zur Bemerkung mit den massiven 20%-25% Performancevorteilen gegenüber C#? Die Begründung scheint mir bzgl. des neuen Kontextes (CLR+MSIL) als nicht ganz stichhaltig..?
-- 84.226.57.108 13:22, 5. Feb 2005 (CET)
replies: text: Ich finde die Stelle zu 20%-25% Performancevorteil nicht mehr, habe aber folgende Quelle aufgetan: C++/CLI-Performance. Darin ist von 5%-30% die Rede. Was findest du an der Begründung nicht stichhaltig? Poldi 21:25, 8. Mär 2005 (CET)
replies: text: Die angegebene Webseite gibt es nicht mehr, und die Historie des Compilers dürfte nach so vielen Jahren nicht mehr relevant sein. Ich nehme die betreffenden Stellen mal raus, bis jemand seriöse Quellen angibt. -- Gerd Fahrenhorst 22:06, 7. Okt. 2010 (CEST)
thread_title:  Performance-Vorteil gegenüber C# 

message: Irgendwie sind mir beim Lesen die Vorteile von dieser neuen Microsoft-Idee nicht ganz klar.
=== 1. Kompatibilität ===
Wenn man eh Code umschreiben muss, kann man ihn auch so schreiben, dass er "klassischen" C++-GCs benutzt.
: Es geht aber darum, dass er auf der CLI laufen soll. (Auch zur Interaktion mit in anderen Programmiersprachen geschriebenem Code.) Poldi 21:25, 8. Mär 2005 (CET)
replies: text: Doch, der unveränderte C++-Code läuft noch! Poldi 20:41, 9. Mär 2005 (CET)

text: Ja, auch die. Wie das funktioniert, wäre sicher ein Thema für den Artikel. :-) Poldi 21:42, 10. Mär 2005 (CET)

text: Eigentlich nichts Bedeutungsvolles mehr. Ggf. vorteilhaft bei Handportierung von in anderen CLI-Sprachen geschriebenem Code. Poldi 21:25, 8. Mär 2005 (CET)

text: Aber es zwingt dich doch niemand, den Finalisierer zu benutzen. Wo ist das Problem? :-) Vielleicht liegt da ein Verständnisproblem vor - weder Destruktor noch Finalisierer machen für sich genommen überhaupt irgendetwas, wenn du sie nicht mit eigenem Code "befüllst". Poldi 20:41, 9. Mär 2005 (CET)

text: Du musst den Finalisierer gar nicht verwenden. Du solltest es sogar vermeiden, überhaupt nur daran zu denken, den Finalisierer zu verwenden. Finalisierer sind pfui! :-) Näheres dazu unter Finalisierung. Poldi 23:40, 10. Mär 2005 (CET)

text: Das habe ich ja schon eingangs beantwortet. (s.o.) :-) Poldi 16:19, 13. Mär 2005 (CET)

text: Objektzeiger sind wie "normale" Zeiger mit einigen künstlich auferlegten Einschränkungen. Wenn du sie mit Smartpointern vergleichst, dann geht es eigentlich um den Unterschied zwischen Speicherverwaltung mit oder ohne Garbage-Collection (s. dort). Poldi 21:25, 8. Mär 2005 (CET)

text: Eine GC basiert aber normalerweise nicht auf Smartpointern. (Auch die Objektzeiger sind übrigens keine Smartpointer!) Poldi 21:51, 9. Mär 2005 (CET)

text: Nein, man verwendet keine Smartpointer, um Objekte bei der GC anzumelden - so funktioniert das einfach nicht. Du hast da eine falsche Vorstellung. - Nochmal: Objektzeiger sind keine Smartpointer. Objektzeiger sind sogar noch weniger als herkömmliche Zeiger. Man kann nicht einmal Zeigerarithmetik damit betreiben. Ein Objektzeiger zeigt immer auf den Anfang eines Objektes (im Gegensatz zu "normalen" Zeigern, die überallhin zeigen können!). Die Stärke der Objektzeiger besteht gerade in diesen Einschränkungen. Poldi 23:40, 10. Mär 2005 (CET)

text: Im Großen und Ganzen sind sie wie normale Zeiger. Auch in Programmiersprachen, in denen man mit Zeigern Grundsätzlich keine Zeigerarithmetik durchführen kann, heißen sie "Zeiger". Poldi 16:19, 13. Mär 2005 (CET)
thread_title:  Vorteile von C++/CLI ggü. ISO-C++? 

message: Wenn man eh Code umschreiben muss, kann man ihn auch so schreiben, dass er "klassischen" C++-GCs benutzt.
: Es geht aber darum, dass er auf der CLI laufen soll. (Auch zur Interaktion mit in anderen Programmiersprachen geschriebenem Code.) Poldi 21:25, 8. Mär 2005 (CET)
replies: text: Doch, der unveränderte C++-Code läuft noch! Poldi 20:41, 9. Mär 2005 (CET)

text: Ja, auch die. Wie das funktioniert, wäre sicher ein Thema für den Artikel. :-) Poldi 21:42, 10. Mär 2005 (CET)
thread_title:  1. Kompatibilität 

message: Der Destruktor ~Foo() gibt vom Objekt belegte Ressourcen frei. Was macht dann noch der der Finalisierer !Foo()?
: Eigentlich nichts Bedeutungsvolles mehr. Ggf. vorteilhaft bei Handportierung von in anderen CLI-Sprachen geschriebenem Code. Poldi 21:25, 8. Mär 2005 (CET)
replies: text: Aber es zwingt dich doch niemand, den Finalisierer zu benutzen. Wo ist das Problem? :-) Vielleicht liegt da ein Verständnisproblem vor - weder Destruktor noch Finalisierer machen für sich genommen überhaupt irgendetwas, wenn du sie nicht mit eigenem Code "befüllst". Poldi 20:41, 9. Mär 2005 (CET)

text: Du musst den Finalisierer gar nicht verwenden. Du solltest es sogar vermeiden, überhaupt nur daran zu denken, den Finalisierer zu verwenden. Finalisierer sind pfui! :-) Näheres dazu unter Finalisierung. Poldi 23:40, 10. Mär 2005 (CET)

text: Das habe ich ja schon eingangs beantwortet. (s.o.) :-) Poldi 16:19, 13. Mär 2005 (CET)
thread_title:  2. Destruktor / Finalisierer 

message: : Objektzeiger sind wie "normale" Zeiger mit einigen künstlich auferlegten Einschränkungen. Wenn du sie mit Smartpointern vergleichst, dann geht es eigentlich um den Unterschied zwischen Speicherverwaltung mit oder ohne Garbage-Collection (s. dort). Poldi 21:25, 8. Mär 2005 (CET)
replies: text: Eine GC basiert aber normalerweise nicht auf Smartpointern. (Auch die Objektzeiger sind übrigens keine Smartpointer!) Poldi 21:51, 9. Mär 2005 (CET)

text: Nein, man verwendet keine Smartpointer, um Objekte bei der GC anzumelden - so funktioniert das einfach nicht. Du hast da eine falsche Vorstellung. - Nochmal: Objektzeiger sind keine Smartpointer. Objektzeiger sind sogar noch weniger als herkömmliche Zeiger. Man kann nicht einmal Zeigerarithmetik damit betreiben. Ein Objektzeiger zeigt immer auf den Anfang eines Objektes (im Gegensatz zu "normalen" Zeigern, die überallhin zeigen können!). Die Stärke der Objektzeiger besteht gerade in diesen Einschränkungen. Poldi 23:40, 10. Mär 2005 (CET)

text: Im Großen und Ganzen sind sie wie normale Zeiger. Auch in Programmiersprachen, in denen man mit Zeigern Grundsätzlich keine Zeigerarithmetik durchführen kann, heißen sie "Zeiger". Poldi 16:19, 13. Mär 2005 (CET)
thread_title:  3. Was ist der Vorteil von diesen "Objektzeigern" gegenüber C++-Smartpointern?