Hi, nachdem ich mich (uns) von Wimalopan in jüngster Zeit zunehmend mit C++-Konfekt beschenkt sehe, will ich doch mal wieder ein wenig mehr damit beschäftigen. Ich suche, ähnlich wie zu C, die Working Drafts zu C++17, finde aber leider nichts. Ausgehend von der Wikipedia-Seite habe ich nur ein Dokument von 2012 gefunden. Ein Buch habe ich schon, aber ich gucke immer gerne noch in die Standards - habe mir das bei C jedenfalls so angewöhnt und finde es recht hilfreich. Gibt es da Links und mag mal jemand sowas posten?
Google ist da eigentlich sehr auskunftsfreudig Z.B. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4713.pdf Oliver
Oliver S. schrieb: > Google ist da eigentlich sehr auskunftsfreudig > > Z.B. > > http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4713.pdf > > Oliver Dankeschön, Oliver.
Theor schrieb: > die Working Drafts zu C++17, Warum C++17? Sinnvoller wäre, wenn Du jetzt mit C++20 anfängst, denn C++20 ist wieder ein Major-Release.
Theor schrieb: > Ausgehend von der Wikipedia-Seite Schau Dir lieber das an: https://en.cppreference.com/w/
Wilhelm M. schrieb: > Theor schrieb: >> die Working Drafts zu C++17, > > Warum C++17? > Sinnvoller wäre, wenn Du jetzt mit C++20 anfängst, denn C++20 ist wieder > ein Major-Release. Meine Überlegung ist Folgende: C++20 ist noch nicht fertig. Möglicherweise lerne ich etwas, was dann doch nicht so im Standard steht. Das mag möglicherweise falsch sein, aber gegenteilige Anhaltspunkte sehe ich nicht. Wilhelm M. schrieb: > Theor schrieb: >> Ausgehend von der Wikipedia-Seite > > Schau Dir lieber das an: > > https://en.cppreference.com/w/ Danke für den Link, Wilhelm. Eine wertvolle Resource. Ich deute das Wort "lieber" so, dass die verlinkte "Referenz" aus Deiner Sicht dem Standard bzw. dem Entwurf vorzuziehen ist - um C++ zu lernen. Ich bin nicht undankbar, Wilhelm. :-) Will nur Deine Bewertung "lieber" einordnen und evtl. diskutieren. Ich denke, ob Referenzen ggü. dem Standard-Entwurf zu bevorzugen sind, ist Ansichtssache bzw. hängt vom individuellen Lern- und Arbeitsstil ab. Ich würde sogar soweit gehen, dass es objektivierbare Gründe gibt, das nicht so zu sehen. Aus meiner Sicht würde ich die Materialien so einordnen: 1. Lehrbuch - Zusammenhänge in den Grenzen wie der Autor das praktisch für relevant hält, Beispiele und Aufgaben. M.M.n. gut zum lernen. (Natürlich). 2. Standard - Regeln, Zusammenhänge und Ausnahmen im Detail. M.M.n. gut um beim Lernen bzw. bei den Übungen tiefer einzudringen. Besonders wenn Fehler oder gar unerwartetes Verhalten bei den Übungen auftreten (die das Buch nicht abdeckt). 3. Referenz - zum Nachschlagen und Wiederholen von Fakten, Regeln und Ausnahmen, die zwar bekannt sind aber entweder nicht vollständig bekannt sind oder vergessen wurden. Ich denke, es ist unstrittig, dass der Inhalt sehr kondensiert ist. Eben diese gestraffte, kondensierte Eigenschaft einer Referenz, macht sie für meine Begriffe ungeeignet zum Lernen.
Theor schrieb: > Eben diese gestraffte, kondensierte Eigenschaft einer Referenz, macht > sie für meine Begriffe ungeeignet zum Lernen. Ich kann deine Überlegung nachvollziehen, kann ihr aber nicht zustimmen. Der C++ Standard ist sehr schwer zu lesen, vor allem für C++ Neulinge und sicher nicht geeignet, um die Sprache zu lernen. Man muss die Sprache relativ gut beherrschen, um mit dem Standard etwas anfangen zu können. Ich gehe davon aus, dass ein signifikanter Anteil der professionellen C++ Programmiere noch nie wirklich im Standard gelesen hat. Stell dir dagegen cppreference als eine, für "normale Programmierer", aufgearbetet Version des Standards vor. Noch immer nicht geeignet als einzige Quelle zum Lernen der Sprache, aber eine wichtige Ergänzung zu einem guten Buch.
Den C++ Standard braucht man eher selten, da der als Lehrwerk durch die sehr hohe Formalität nicht wirklich hilfreich ist. Ich schau meistens erst dann in den Standard, wenn ich einen Compilerbug vermute oder mir bei sehr spezifischen Details nicht sicher bin und das jetzt wirklich wissen will. Ansonsten ist C++20 aber effektiv auch schon fertig und erhält nur noch Bugfixes, die für dich aber kaum relevant sein werden. Da geht es dann meist um kleinere Unklarheiten in den Formulierungen für Features. Final soll das ganze dann im Februar verabschiedet werden, sodass der Standard dann (nach ein paar ISO Formalien) irgendwann dieses Jahr veröffentlich wird. https://en.cppreference.com/w/ ist super. Bei Lehrbüchern muss man schon eher aufpassen. Da gibt es leider viel Schrott und auch viel veraltertes Zeug. Viel wichtiger als der Standard ist aber mit C++ Fehlermeldungen umgehen zu können. Wenn der Compiler dir 5 Seiten Fehlermeldungen für ein vergessenes Komma ausgibt hilft dir der Standard (und auch ein Lehrbuch) nicht mehr weiter.
Naja, wenn es nach Wilhelm ginge, dann solltest du ohnehin jetzt schon mit C++23 anfangen, denn das ist die Zukunft.
@mh und @Ntldr Nun. Wir werden uns vielleicht doch (im wesentlichen) einig, wenn ich nochmal aus meinen Beitrag zitiere und das Wort, das mir entscheidend erscheint, unterstreiche: > 2. Standard - Regeln, Zusammenhänge und Ausnahmen im Detail. M.M.n. > gut um beim Lernen bzw. bei den Übungen tiefer einzudringen. Möglicherweise also nur ein Mißverständnis. Ich stimme jedenfalls zu, dass der Standard zum Lernen nicht geeignet ist. Ein Buch ziehe auch ich vor. Und die Referenz, Ntldr, ist auch aus meiner Sicht zum lernen ungeeignet. Nur zum Nachschlagen. Du stellst in Deinem Beitrag in Bezug auf das Lernen die Referenz und den Standard gegenüber. Ich wollte aber durchaus in den Raum stellen, dass aus meiner Sicht das primäre Medium zum Lernen das Buch ist. --- Nochmal kurz das Thema C++20 bzw. eigentlich das Working-Draft-Dokument: Dazu gibt es einfach noch kein Buch. Kann es ja noch nicht geben, meine ich. Es fällt mir aber auch schwer, mich auf www.open-std.org zu orientieren. Es steht ja nirgend ausdrücklich C++20. Ich nehme mal an, dass es sich um die Datei http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/n4842.pdf auf der Seite http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/ handelt - ziemlich weit unten in der Novemberliste. Kann das jemand bestätigen? Ich gehe jedenfalls davon aus, dass, bis auf ein paar Ausnahmen, C++20 ggü. C++17 im wesentlichen erweitert ist und keine Features gestrichen oder bedeutend geändert werden. Daher halte ich C++17 lernen, zu dem es Bücher gibt, für ganz sinnvoll. (Unstrittig ist, dass es wohl bedeutende Neuerungen geben wird).
Wilhelm M. schrieb: > Warum C++17? > Sinnvoller wäre, wenn Du jetzt mit C++20 anfängst ähm, drei Jahre Unterschied und das Zeug ist nicht mehr aktuell oder wie? Ist das echt der Weg, den C++ geht?
Oliver S. schrieb: > https://www.heise.de/developer/artikel/C-20-Die-vier-grossen-Neuerungen-4568956.html Genau. Und zu den Big4 kommt noch die chrono-lib und constexpr-all-things.
Theor schrieb: > Nochmal kurz das Thema C++20 bzw. eigentlich das Working-Draft-Dokument: > Dazu gibt es einfach noch kein Buch. Kann es ja noch nicht geben, meine > ich. Das aktuelle draft-paper findest Du immer hier: https://en.cppreference.com/w/cpp/language/history unten auf der Seite. Allerdings: daraus wirst Du die Sprache / Lib nicht erlernen. Es ist eine gewisse Crux, dass die Weiterentwicklung so dynamisch geworden ist: man hat einen 3-Jahreszyklus festgelegt, und die Community arbeit sehr hart daran, diesen Zyklus einzuhalten. Daher brauchst Du nicht auf Bücher zu hoffen. Stattdessen solltest Du einfach die Blogs der Keyplayer in diesem Prozeß lesen und natürlich die einschlägigen Konferenzvideos ansehen oder die Konferenzen besuchen, und mit diesen Leuten reden. C++20 habe ich nicht umsonst gesagt: 1) ist C++20 feature-complete 2) es ist ein major-release 3) bis Du Dir die C++20 features ansiehst, ist der C++20 Fakt.
Wilhelm M. schrieb: > Theor schrieb: >> Nochmal kurz das Thema C++20 bzw. eigentlich das Working-Draft-Dokument: >> Dazu gibt es einfach noch kein Buch. Kann es ja noch nicht geben, meine >> ich. > > Das aktuelle draft-paper findest Du immer hier: > > https://en.cppreference.com/w/cpp/language/history > > unten auf der Seite. > [...] Ah. Dankeschön.
Theor schrieb: > Ah. Dankeschön. Gerne: deswegen habe ich diese Quelle erwähnt, denn Sie ist eigentlich DIE zentrale Ressource ind allen Dingen für C und C++. Es ist ausreichend aktuell und die verschiedenen Sprachversionen sind übersichtlich nebeneinander zu sehen. M.E. gibt es kaum was besseres.
zitter_ned_aso schrieb: > ähm, drei Jahre Unterschied und das Zeug ist nicht mehr aktuell oder > wie? Ist das echt der Weg, den C++ geht? Ist doch besser, als immer ein ganzes Jahrzehnt (zuzüglich der Zeit, die die Compiler zur Implementation brauchen) auf neue Sprachfeatures warten zu müssen.
Rolf M. schrieb: > Ist doch besser, als immer ein ganzes Jahrzehnt (zuzüglich > der Zeit, die die Compiler zur Implementation brauchen) auf > neue Sprachfeatures warten zu müssen. Stimmt. Neue, noch nicht verbreitete Features lassen sich auch viel schneller wieder entfernen, wenn sie doch nicht so super sind. Sich bewegende Ziele sind auch prima, um early adopters ständig aktiv zu halten. Ich liebe Wissen, was schneller veraltet als ich es lernen kann.
S. R. schrieb: > Ich liebe Wissen, was schneller veraltet als ich es lernen kann. Es hindert dich niemand, einen beliebig alten C++ Standard zu nutzen. Die werden ja nicht automatisch ungültig. Oliver
Oliver S. schrieb: > Die werden ja nicht automatisch ungültig. Tatsächlich werden sie das. Allerdings sind die neuen Versionen abwärtskompatibel.
Rolf M. schrieb: > Tatsächlich werden sie das. Dann anders ausgedrückt: Die passenden Compiler verschinden nicht, und auch aktuelle Versionen bieten per Compilerflag die Wahl, einen älteren Sprachstandard zu nutzen. Bei gefühlten 50% weltweiter Souececode-Projekte, die in der Umstellung von (Vor-)C++03 auf C++11 sind (ok, ist jetzt zynisch), ist das anders nicht machbar. Oliver
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.