mikrocontroller.net

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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Theor (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
1 lesenswert
nicht 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)


Bewertung
2 lesenswert
nicht lesenswert
Theor schrieb:
> Ausgehend von der Wikipedia-Seite

Schau Dir lieber das an:

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

von Theor (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert

von zitter_ned_aso (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.