Frage Wie hat sich C ++ in den letzten zehn Jahren verändert? [geschlossen]


Ich habe C ++ in den letzten zehn Jahren kaum / selten benutzt, und jetzt sieht es so aus, als würde ich wieder etwas machen. Ich freue mich darauf, aber ich muss mich wundern, wie es sich seit meinem letzten Gebrauch verändert hat.

Gibt es gute / kurze Webseiten, Blogposts oder sogar Bücher darüber, wie sich C ++ im letzten Jahrzehnt verändert hat?

Bitte beachten Sie, dass sich diese Frage sowohl auf die Sprache als auch auf Tools oder zusätzliche Informationen zum Arbeiten in C ++ bezieht. Insbesondere arbeite ich in Windows mit VC ++ 2008.


18
2017-08-03 20:18


Ursprung


Antworten:


Während sich der offizielle Standard in den letzten zehn Jahren nicht wesentlich geändert hat, gibt es einige wichtige Dinge, die passiert sind:

  • Obwohl es noch kein offizieller Standard ist, ist ein bevorstehender neuer Standard (allgemein C ++ 0x genannt) "um die Ecke". GCC und MSVC 2010 haben wesentliche Teile dieses neuen Standards übernommen, aber ich bin mir nicht sicher, wie viel davon gebräuchlich ist.
  • das Boost-Bibliothek ist zu einem wichtigen Akteur geworden, der zusätzliche Unterstützung für die Sprache bietet - bis zu dem Punkt, dass dies einen wesentlichen Einfluss auf den neuen Standard hatte
  • "Template-basierte" Programmiertechniken sind viel häufiger geworden und haben wahrscheinlich die älteren vererbungsbasierten Techniken der Code-Wiederverwendung überholt (das könnte gut laufen, als Sie C ++ zuletzt betrachtet haben, abhängig von den praktischen Erfahrungen, die Ihr Shop verwendet hat) die Zeit).
  • Compiler (und insbesondere Microsofts) haben einen langen Weg in der Einhaltung von Standards beschritten

17
2017-08-03 20:41



Die größte Veränderung ist, dass der C ++ - Standard jetzt in allen wichtigen Compilern funktioniert. Dinge wie Mitgliedervorlagen waren früher zweifelhaft.


11
2017-08-03 20:40



Die Sprache selbst hat sich nicht viel verändert. Die besten Praktiken und Idiome haben jedoch viel bewirkt.

Ich schlage vor, Sie schauen sich das Buch an "C ++ - Codierungsstandards: 101 Regeln, Richtlinien und Best Practices"von Herb Sutter und Andrei Alexandrescu, um zu sehen, wie modern C ++ heute aussieht.


10
2017-08-03 20:44



Ich denke, eine der größten Veränderungen ist eine Einstellung: Viele Leute haben (endlich!) Erkannt, dass Vorlagen unglaublich leistungsfähig sind und nicht langsam sein müssen, und die Verwendung der STL und des Boosts ist weit verbreiteter als vor 10 Jahren.


9
2017-08-03 20:37



VS2008 kommt mit TR1, eine große Ergänzung zu std, die Dinge wie statische Arrays, Verweiszählungszeiger und dergleichen enthält. Abgesehen davon ist die größte Änderung nur, dass der Compiler kompiliert, wie der Standard definiert.


2
2017-08-03 21:25



Eine interessante Frage, wie ich zu meinem 10. Jahrestag der Programmierung von C ++ für Münzen komme.

Meine persönliche Meinung ist, dass ich etwas vorsichtig sein würde - aber nur etwas - da ich nicht alles gesehen habe (obwohl ich denke, ich kann erraten, wie es ist) - der Internet-Echokammer große Aufmerksamkeit zu schenken. Es ist wahr, einige Leute haben sich für den modernen C ++ - Stil voll gebohrt, mit allem, was vollständig vorbereitet wurde und moderne Techniken verwenden, um den Compiler dazu zu bringen, seine Prolog-Sache bestmöglich zu machen. Allerdings ist dies sicherlich nicht allgemein zutreffend, und der C ++ - Code, den ich heute sehe, ist dem C ++ - Code, den ich vor zehn Jahren gesehen habe, im Wesentlichen sehr ähnlich.

Es wäre eine gute Idee, moderne Mode aufzufrischen, denn einige Dinge, die vor zehn Jahren noch selten waren (intelligente Zeiger, regelmäßige Verwendung von RAII, Standard-Bibliothekscontainern und anderem), sind jetzt häufiger. Aber solange Sie nicht sicher sind, dass der Code, mit dem Sie arbeiten werden, mit Templates, Boost usw. geschmückt ist, haben Sie eine gute Chance, mit etwas zu arbeiten, das im Grunde sehr ähnlich ist, mit dem Sie früher gearbeitet haben.

Es mag unmodern sein, es zu sagen, aber das macht es nicht weniger wahr: Unabhängig vom Qualifikationsniveau interessieren sich viele Leute nicht für modernes C ++. Einige, weil sie es nicht verstehen. Manche, weil sie es verstehen. Und für manche ist "Pflege" vielleicht nicht einmal das richtige Wort - sie wissen nicht einmal, dass es existiert. Und wie Sie vielleicht erwarten, codieren alle diese Leute entsprechend.

Vielleicht bewege ich mich in den falschen Kreisen, aber meine Erfahrung ist, dass Menschen, die im modernen Stil nicht oder nicht kodieren können oder wollen, zahlenmäßig überlegen sind. Und diejenigen, die es tun könnten, tun dies im Allgemeinen nicht, weil sie zahlenmäßig unterlegen sind. Ihr Code wird neu geschrieben oder ignoriert, bis sie anfangen, Dinge zu schreiben, die andere Leute verstehen können. Vielleicht ist das also gut, oder vielleicht ist das schlecht - es ist aus meiner Sicht kaum relevant, denn das Ergebnis ist dasselbe: Wenn Ihre Erfahrung sich als etwas Ähnliches herausstellt, haben Sie eine gute Chance, dem heutigen Code zu begegnen bemerkenswert ähnlich zu dem, was Sie 1999 gesehen hätten.

P.S. Nicolai Josuttis hat ein paar Bücher geschrieben, die der Resident Template-Experte meines letzten Arbeitgebers zu mögen schien. Probiere auch Modernes C ++ Design (Alexandrescu) - Wahrscheinlich ein bisschen veraltet, aber es erklärt viele der Prinzipien. Herb Sutters außergewöhnliches C ++ gibt, so wie ich mich von einem Überfliegen einer Arbeitskopie erinnere, einen guten Überblick über einige moderne Techniken, ohne zu sehr auf die Vorlagenfront zu verzichten. Und natürlich steigern demonstriert all diese Dinge (und viel, viel mehr - dann etwas Bonusmaterial), die über eine Reihe von Compilern in die Praxis umgesetzt werden.

(Hoffentlich ist die obige Liste nicht zu veraltet; wie meine Antwort vermuten lässt, habe ich viel weniger Bedarf, mich über die neuesten Trends in C ++ auf dem Laufenden zu halten, als ich jemals erwartet hätte.)


2