Forum: Compiler & IDEs C++17 Working Draft - Suche URLs


von Theor (Gast)


Lesenswert?

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?

von Oliver S. (oliverso)


Lesenswert?

Google ist da eigentlich sehr auskunftsfreudig

Z.B.

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4713.pdf

Oliver

von Theor (Gast)


Lesenswert?

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.

von Wilhelm M. (wimalopaan)


Lesenswert?

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.

von Wilhelm M. (wimalopaan)


Lesenswert?

Theor schrieb:
> Ausgehend von der Wikipedia-Seite

Schau Dir lieber das an:

https://en.cppreference.com/w/

von Theor (Gast)


Lesenswert?

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.

von mh (Gast)


Lesenswert?

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.

von Ntldr -. (ntldr)


Lesenswert?

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.

von S. R. (svenska)


Lesenswert?

Naja, wenn es nach Wilhelm ginge, dann solltest du ohnehin jetzt schon 
mit C++23 anfangen, denn das ist die Zukunft.

von Theor (Gast)


Lesenswert?

@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).

von Oliver S. (oliverso)


Lesenswert?


von zitter_ned_aso (Gast)


Lesenswert?

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?

von Wilhelm M. (wimalopaan)


Lesenswert?

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.

von Wilhelm M. (wimalopaan)


Lesenswert?

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.

von Theor (Gast)


Lesenswert?

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.

von Wilhelm M. (wimalopaan)


Lesenswert?

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.

von Rolf M. (rmagnus)


Lesenswert?

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.

von S. R. (svenska)


Lesenswert?

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.

von Oliver S. (oliverso)


Lesenswert?

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

von Rolf M. (rmagnus)


Lesenswert?

Oliver S. schrieb:
> Die werden ja nicht automatisch ungültig.

Tatsächlich werden sie das. Allerdings sind die neuen Versionen 
abwärtskompatibel.

von Oliver S. (oliverso)


Lesenswert?

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
Noch kein Account? Hier anmelden.