C++09 - wann kommt's raus?
-
New gibt nie Null zurück, sondern wirft eine Exception. Willst du, dass new Null bei einem Fehler zurückgibt, musst du
new(std::nothrow)verwenden.EDIT: Ach, wurde ja schon gepostet...
-
Don06 schrieb:
New gibt nie Null zurück, sondern wirft eine Exception. Willst du, dass new Null bei einem Fehler zurückgibt, musst du
new(std::nothrow)verwenden.EDIT: Ach, wurde ja schon gepostet...
Da bin ich überrascht, ich hab mehrere Bücher zu C++ von ca. 2000 und in denen
steht das garantiert nicht drin ( denn ich hab Sie gelesen
).
Danke auf jeden Fall.
rya.
-
pumuckl schrieb:
Allerdings sehe ich da einen gewissen Unterschied: Bei Java muss der Anwender/Kunde eine entsprechende JRE haben, bei C++ muss nur der Entwickler einen entsprechenden Compiler haben. Insofern ist Zurückhaltung bei der Verwendung der neuesten Java-Features durchaus verständlich in Hinblick auf Kunden, die vielleicht nicht immer sofort auf das aktuellste System umsteigen.
Die passende JRE wird genau wie die Software auch beim Kunden mit installiert. Da gibt es keinen Unterschied.
-
Um nocheinmal zum Erscheinungstermin zurückzukommen...
Ich hoffe, das der neue Standard bald herauskommt, auch wenn ich es nicht glaube...
Einige Änderungen passen mir zwar nicht, aber man muss sie ja nicht verwenden und andere finde ich ganz nützlich.
Ich hoffe aber, das in Zukunft die Standards etwas schneller kommen und auch gelegentlich mal größere Veränderungen mitbringen...
-
scorcher24 | off schrieb:
Da bin ich überrascht, ich hab mehrere Bücher zu C++ von ca. 2000 und in denen
steht das garantiert nicht drin ( denn ich hab Sie gelesen
).2000 war der Standard 2 Jahre drausen, daher finde ich das noch verschmerzbar. Nur es gibt noch Bücher mit einem Erscheinungsdatum > 2005 die dies und vieles andere noch immer nicht berücksichtigen.
Ich behaupte einfach mal unverschämt wie ich bin: weit mehr als 50% aller aktuell erhältlichen C++ Bücher (besonders im deutschen Bereich) sind nur für eines sinnvoll... das klingeln der Verlagskassen (und eine Bereicherung der runden Papierablage...).
cu André
-
C++0x kommt vielleicht bald raus (ich hoffe es...); aber zuerst brauchen wir mal noch einen Compiler, der weit verbreitet ist (Sprich: MSVC++. Ja, es ist fies, aber ohne Microsoft wird es wieder viele Jahre dauern, bis der neue Standard sich durchsetzen kann. Das letzte Mal durfte sich die C++-Welt mit allerhand Vergewaltigungen der Sprache auseinandersetzen, was auch bis heute noch andauert
), und es auch unterstützt. Und soweit ich es beurteilen kann, ist die Implementierung eines C++-Compilers oder selbst nur einiger Features derselben unglaublich aufwändig. VC 2010 unterstützt einige Features von C++0x bereits (rvalue references, lambda expressions, das neue auto...), die wirklich komplizierten Dinge wurden noch nicht angerührt. Mit effektiv einsetzbaren und eingesetzten Compilern rechne ich frühestens so gegen Ende 2012. Bis dahin ist ein eventueller Standard C++0x nur ein sehr interessantes Papierchen
MfG
-
/rant/ schrieb:
Ja, es ist fies, aber ohne Microsoft wird es wieder viele Jahre dauern, bis der neue Standard sich durchsetzen kann.
Der GCC kann schon einiges: http://gcc.gnu.org/projects/cxx0x.html
-
Leprechaun schrieb:
/rant/ schrieb:
Ja, es ist fies, aber ohne Microsoft wird es wieder viele Jahre dauern, bis der neue Standard sich durchsetzen kann.
Der GCC kann schon einiges: http://gcc.gnu.org/projects/cxx0x.html
Ja, und ich hoffe sehr, dass Microsoft sich ein Beispiel daran nimmt (momentan sieht es nicht schlecht aus), weil deren Compiler nunmal der am weitesten verbreitete ist. Wenn sie anstelle des neuen Standards wieder ihren eigenen Käse einbauen, dann wird es noch viel schwerer, den Überblick zu bewahren, als es heute schon ist

BTW, wo finde ich eigentlich mal einen Link, wo ich den Compiler für Windooze 64-bit saugen und direkt installieren und benutzen kann? Für jedes mögliche, noch so exotische System werden brauchbare GCCs so offensichtlich bereitgestellt, aber für Windows nicht

-
/rant/ schrieb:
Leprechaun schrieb:
/rant/ schrieb:
Ja, es ist fies, aber ohne Microsoft wird es wieder viele Jahre dauern, bis der neue Standard sich durchsetzen kann.
Der GCC kann schon einiges: http://gcc.gnu.org/projects/cxx0x.html
Ja, und ich hoffe sehr, dass Microsoft sich ein Beispiel daran nimmt (momentan sieht es nicht schlecht aus), weil deren Compiler nunmal der am weitesten verbreitete ist. Wenn sie anstelle des neuen Standards wieder ihren eigenen Käse einbauen, dann wird es noch viel schwerer, den Überblick zu bewahren, als es heute schon ist

BTW, wo finde ich eigentlich mal einen Link, wo ich den Compiler für Windooze 64-bit saugen und direkt installieren und benutzen kann? Für jedes mögliche, noch so exotische System werden brauchbare GCCs so offensichtlich bereitgestellt, aber für Windows nicht

Download TR1 von M$, aber nicht für Express: http://www.microsoft.com/downloads/details.aspx?FamilyId=D466226B-8DAB-445F-A7B4-448B326C48E7&displaylang=en
Anleitung für 64bit:
http://msdn.microsoft.com/de-de/library/9yb4317s(VS.80).aspx
rya.
-
Scorcher24 schrieb:
/rant/ schrieb:
Leprechaun schrieb:
/rant/ schrieb:
Ja, es ist fies, aber ohne Microsoft wird es wieder viele Jahre dauern, bis der neue Standard sich durchsetzen kann.
Der GCC kann schon einiges: http://gcc.gnu.org/projects/cxx0x.html
Ja, und ich hoffe sehr, dass Microsoft sich ein Beispiel daran nimmt (momentan sieht es nicht schlecht aus), weil deren Compiler nunmal der am weitesten verbreitete ist. Wenn sie anstelle des neuen Standards wieder ihren eigenen Käse einbauen, dann wird es noch viel schwerer, den Überblick zu bewahren, als es heute schon ist

BTW, wo finde ich eigentlich mal einen Link, wo ich den Compiler für Windooze 64-bit saugen und direkt installieren und benutzen kann? Für jedes mögliche, noch so exotische System werden brauchbare GCCs so offensichtlich bereitgestellt, aber für Windows nicht

Download TR1 von M$, aber nicht für Express: http://www.microsoft.com/downloads/details.aspx?FamilyId=D466226B-8DAB-445F-A7B4-448B326C48E7&displaylang=en
Anleitung für 64bit:
http://msdn.microsoft.com/de-de/library/9yb4317s(VS.80).aspx
rya.Genau lesen bitte; aus meinem Post sollte eigentlich hervorgehen, dass ich nach dem GCC für Windows suche. Visual Studio 2008 + TR1, 2010 CTP und volle 64-bit Unterstützung habe ich bereits und benutze es jeden Tag

-
/rant/ schrieb:
Scorcher24 schrieb:
/rant/ schrieb:
Leprechaun schrieb:
/rant/ schrieb:
Ja, es ist fies, aber ohne Microsoft wird es wieder viele Jahre dauern, bis der neue Standard sich durchsetzen kann.
Der GCC kann schon einiges: http://gcc.gnu.org/projects/cxx0x.html
Ja, und ich hoffe sehr, dass Microsoft sich ein Beispiel daran nimmt (momentan sieht es nicht schlecht aus), weil deren Compiler nunmal der am weitesten verbreitete ist. Wenn sie anstelle des neuen Standards wieder ihren eigenen Käse einbauen, dann wird es noch viel schwerer, den Überblick zu bewahren, als es heute schon ist

BTW, wo finde ich eigentlich mal einen Link, wo ich den Compiler für Windooze 64-bit saugen und direkt installieren und benutzen kann? Für jedes mögliche, noch so exotische System werden brauchbare GCCs so offensichtlich bereitgestellt, aber für Windows nicht

Download TR1 von M$, aber nicht für Express: http://www.microsoft.com/downloads/details.aspx?FamilyId=D466226B-8DAB-445F-A7B4-448B326C48E7&displaylang=en
Anleitung für 64bit:
http://msdn.microsoft.com/de-de/library/9yb4317s(VS.80).aspx
rya.Genau lesen bitte; aus meinem Post sollte eigentlich hervorgehen, dass ich nach dem GCC für Windows suche. Visual Studio 2008 + TR1, 2010 CTP und volle 64-bit Unterstützung habe ich bereits und benutze es jeden Tag

Für mich hat sich das anders gelesen :).
rya.
-
Scorcher24 schrieb:
Für mich hat sich das anders gelesen :).
rya.Very well...

Trotzdem: weisst du denn, wo ich diesen besagten GCC herbekomme?

-
/rant/ schrieb:
Scorcher24 schrieb:
Für mich hat sich das anders gelesen :).
rya.Very well...

Trotzdem: weisst du denn, wo ich diesen besagten GCC herbekomme?

Naja auf http://wxpack.sourceforge.net/Main/Downloads gibts alternative Packages bzw Kompilate des GCC 4.2 / 4.3. Aber in wie weit da schon der TR1 dabei ist, hab ich keine Ahnung. Ich hab letztens mal den 4.3 ausprobiert wegen OpenMP, aber da ich damit nicht erfolgreich war ( haufen Linkerfehler, trotz linken zu libomp?.a), nutze ich weiterhin den MSVC. Der MINGW > 4 ist seit ewigkeiten auf Alpha-Status im MinGW-Projekt.
rya.
-
Das letzte mal, als ich MingW benutzt habe, hatte der noch nicht mal eine vollständige Standardbibliothek. Und den Alphastatus tu ich mir lieber mal nicht an; ich muss schliesslich zuverlässig mit dem Teil arbeiten können

Und dann natürlich... 64-bit :p
-
tfa schrieb:
Wer rechnet denn damit, C++0x in absehbarer Zeit (vorausgesetzt es wird bald verabschiedet), wirklich produktiv einzusetzen?
+1.
Zumindest einige der Neuerungen, die mein Compiler bereits implementiert, verwende ich (vor allem decltype, enum class, static_assert). Und auch auto und Variadic Templates werden, sobald unterstützt, sofort eingesetzt werden zwecks Codereduktion, ebenso Lambda-Funktionen.
tfa schrieb:
Die passende JRE wird genau wie die Software auch beim Kunden mit installiert. Da gibt es keinen Unterschied.
Du wirst es vielleicht nicht glauben, aber selbst das Update auf ein neueres JRE kann Kompatibilitätsprobleme verursachen.
Was das Erscheinungsdatum angeht: ich glaube nicht, daß das relevant ist. Die meisten Compiler (MSVC, GCC, BCC) werden schon jetzt um einige der neuen Features erweitert; bis der Standard aber weithin nahezu vollständig unterstützt wird, dürfte noch mindestens ein Jahrzehnt vergehen. Gerade Concepts oder Module (die aber, soweit ich weiß, wohl erst in einem nachfolgenden Technical Report auftauchen werden) sind alles andere trivial zu implementieren - es sei natürlich denn, man nimmt in Kauf, daß durch Concepts die Übersetzungszeiten vollends ad absurdum getrieben werden

-
audacia schrieb:
Was das Erscheinungsdatum angeht: ich glaube nicht, daß das relevant ist. Die meisten Compiler (MSVC, GCC, BCC) werden schon jetzt um einige der neuen Features erweitert; bis der Standard aber weithin nahezu vollständig unterstützt wird, dürfte noch mindestens ein Jahrzehnt vergehen.
Dieses mal sehe ich das optimistischer (Zumindest eine 95% Umsetzung), da sich aktuell scheinbar alle relevanten Seiten bemühen nicht die letzten zu sein.
cu André
-
audacia schrieb:
tfa schrieb:
Die passende JRE wird genau wie die Software auch beim Kunden mit installiert. Da gibt es keinen Unterschied.
Du wirst es vielleicht nicht glauben, aber selbst das Update auf ein neueres JRE kann Kompatibilitätsprobleme verursachen.
Ich schrieb, dass die passende JRE mit ausgeliefert werden soll. Warum sollte es dann Kompatibilitätsprobleme geben? Verschiedene Anwendungen haben dann eben unter Umständen verschiedene Laufzeitumgebungen. Der Vorteil von Java ist ja gerade u.a., dass man es nicht fest ins System installieren muss, sondern dass mehrere Versionen parallel existieren können.
-
tfa schrieb:
Verschiedene Anwendungen haben dann eben unter Umständen verschiedene Laufzeitumgebungen.
Selbst dann kann es Probleme geben (wenn z.B. mehrere Anwendungen sich auf HKLM\Software\JavaSoft\Java Runtime Environment:CurrentVersion verlassen).
-
tfa schrieb:
Verschiedene Anwendungen haben dann eben unter Umständen verschiedene Laufzeitumgebungen. Der Vorteil von Java ist ja gerade u.a., dass man es nicht fest ins System installieren muss, sondern dass mehrere Versionen parallel existieren können.
Und gleichzeitig ein Nachteil. Bei meiner letzten Systembereinigung hatte ich ca. 700 MB an Javabibliotheken und Javaupdates auf meinen Rechner. Da war selbst das .Net Framework mit 1.1 & 3.5 SP1 deutlich schlanker.
Ich hoffe das dies mit den neuen Javaversionen besser aussieht, den inzwischen hantiere ich auch wieder mit Windows XP-Systemen wo 700MB immerhin ein sechstel der Systempartition ist...
cu André
-
c++09 ist cool. hab es gerade mal angetestet und es ist wirklich nicht schlecht, wenn man von der misratenen und unnützen GUI mal absieht. die sprache hat einige durchaus c00le neuerungen erfahren.