C++-status ved udgangen af ​​2016

C++-status ved udgangen af ​​2016

Endnu et år og endnu en C++-status! Det er svært at tro, men det er femte gang, jeg skriver dette resumé. Og som normalt er C++ sprog meget levende. Årets største nyhed?

Det skal selvfølgelig være:det endelige udkast til C++17 !.

Hvad er der ellers sket? Se hele min rapport nedenfor.

Andre rapporter:

20202019,2018,2017,2016,2015,2014,2013,2012.

Tidslinje

  • 14. januar går Alex Stephanow på pension.
  • 29. februar - 5. marts:ISO-møde i Jacksonville, FL, USA
  • 9. marts, Clang 3.8 udgivet
  • 19.-23. april - ACCU-konference
  • 1. april, Intel Compiler v17.0
  • 27. april, GCC 6.1 udgivet
  • 6.-10. juni, NDC Oslo
  • 20.-25. juni, ISO-møde i Oulu, Finland
  • 27. juni VS-opdatering 3
  • 22. august, GCC 6.2 udgivet
  • 2. september, Clang 3.9 udgivet
  • 17. - 23. september, CppCon 2016
  • 7. - 12. november:ISO-møde Issaquah, WA, USA
  • 16. november VS 2017 RC tilgængelig!
  • 15. og 16. november, code::dive-konference i Wroclaw, PL
  • 18. og 19. november MeetingCpp, Berlin

C++11/14 compiler status

Inden vi dykker ned i de nyeste ting, lad os huske, hvad der er status for C++11 og C++14 implementering.

Bare for referencen Clang (siden 3.4), GCC (siden 5.0) og Intel (version 15.0) har allerede fuld understøttelse af C++11/14.

Visual Studio (fra nuværende VS 15.0 RC) mangler nogle funktioner:ExpressionSFINAE (Delvis), To-faset navneopslag, C99 præprocessor (Delvis). Se dette VS blogindlæg for mere information. Alligevel ser jeg ikke den situation som en blokering.

C++17

Lad os nu fokusere på hovedemnet fra i år.

Under ISO-mødet i Oulu (juni) godkendte udvalget udkastet til C++17. Dette er bestemt ikke en mindre udgivelse, da en masse funktioner blev tilføjet!

Opdater :Jeg har lavet et separat indlæg om alle funktionerne, se her .

Her er, hvad vi får i versionen:

Sprogfunktioner

Bibliotekets funktioner

  • Merged:The Parallelism TS, a.k.a. "Parallel STL.", P0024R2
  • Flettet:The Library Fundamentals 1 TS (de fleste dele),P0220R1
  • Flettet:Filsystem TS,P0218R1
  • Flettet:De matematiske specialfunktioner IS, PDF - WG21P0226R1

Ressourcer:

  • SÅ:Hvad er de nye funktioner i C++17?
  • cppreference.com/C++ compilersupport.

Selvom ovenstående funktioner ser helt ok ud, kunne vi i løbet af året se, at folk ikke var helt tilfredse med standarden. Som du måske husker, postede jeg sidste år en undersøgelse om de foretrukne funktioner til C++17:

Og dette er, hvad der gik ind i standarden:

Ikke meget for at være ærlig... Heldigvis er de fleste af de virkelig ønskede funktioner tæt på at blive standardiserede, så det er et godt tegn for C++20.

Du kan også se disse slides fra Michael Wang:
PDF:Michael Wong – C++17, er det fantastisk eller bare OK…

Alligevel er andre mennesker ikke så hårde til C++, Phil Nash:C++17 - hvorfor det er bedre, end du måske tror.

Jeg synes, at C++17 er en anstændig udgivelse. Vi kunne altid have flere, men udvalget gjorde et godt stykke arbejde i år alligevel.

Hvis du er utilfreds med ikke at have koncept, serier, moduler i standarden ... kan du stadig lege med deres eksperimentelle versioner!

Hvad er din mening?

ISO C++ møder

Der var tre udvalgsmøder i år.

29. februar - 5. marts:Jacksonville, FL, USA

  • Herb Sutter:Turrapport:Vinter ISO C++ standardmøde
  • Botond Ballo, turrapport:C++ standardmøde i Jacksonville, februar 2016
  • Turrapport C++-møde i Jacksonville—J. Daniel Garcia
  • GoingNative 48:ISOC++ @JacksonvilleDebriefing

20.-25. juni, Oulu, Finland

Det vigtigste møde i år, de stemte C++17-udkastet!

  • Herb Sutter:Turrapport:Sommer ISO C++ standardmøder (Oulu)
  • M. Wong:C++17, alle sidste funktioner fra Oulu i et par slides

7.-12. november:Issaquah, WA, USA

  • Botond Ballo:Turrapport:C++ Standards Meeting i Issaquah, november 2016
  • Michael Wong:Udsigten fra november 2016 C++ Standard MeetingIssaquah
  • GoingNative 55:ISO C++ @IssaquahDebriefing

Compiler-noter

Aktuelle versioner, opdateringer

Den bedste ressource til at holde sig ajour med alle funktioner og compilerudgivelser er sandsynligvis:cppreference.com/C++ compilersupport.

Visual Studio

Aktuel version VS 2015 opdatering 3 (27. juni 2016)

Men du kan tjekke den seneste RC-kandidat til VS 2017:VisualStudio 2017 ReleaseCandidate.

  • C++14/17-funktioner og STL-rettelser i VS "15" Preview5
  • VS 2015 opdatering 2 er c++17 featurecomplete
  • Vcpkg:et værktøj til at erhverve og bygge C++ open source-biblioteker på Windows
  • Standardversionsskift i compileren
  • C++ Core Guidelines Checkers:Forhåndsvisning af Lifetime Safetychecker

Der er også forskellige biblioteker tilgængelige fra Microsoft:

  • GSL:Guideline Support Library
  • Range-v3 på MSVC er tilgængelig på GitHub

GCC

  • Gcc 6.1 udgivet den 27. april (i øjeblikket 6.3, 21. december 2016)
    • Ændringer i GCC 6-udgivelsesserien
    • Blandt de ændringer/funktioner, der kommer til GCC6
    • C++14 (GNU++14-dialekten) vil være standard C++-tilstand overC++98
    • C++-koncepter understøttes nu, når de kører i GNU++1z/C++1z-tilstanden.
    • Libstdc++-biblioteket har eksperimentel C++17-understøttelse af en række nye funktioner sammen med en eksperimentel implementering af filsystemet TS og 2nd Library Fundamentals TS.
  • GCC 6 vil advare dig om vildledende kodeindrykninger
  • Nuværende C++1y/C++14-understøttelse iGCC
  • Glæder mig til GCC6 – Mange nye advarsler
  • C++-højdepunkter og mere af GCC 6.1,meetingcpp
  • biblioteksstatus

På Windows kan du bruge den seneste MinGW distro fra nuwen.net (StephanT. Lavavej):Nuwen MinGW distro opdateret med GCC 6.3 og Boost1.63.

Klang

  • Nuværende version:3.9.1 - 23. december 2016, ReleaseNotes
  • Nuværende C++-understøttelse inClang
  • libc++ C++1z Status
  • 9. marts 2016 – Clang 3.8 udgivet

Clang har sin implementering af moduler; du kan lege med der.

Intel compiler

  • Version 17.0 dukkede op i 1. april 2016, 17.0 (XE 2017) (udgivelsesbemærkninger)
  • C++14-funktioner, der understøttes af Intel® C++-compiler
  • C++17-funktioner, der understøttes af Intel® C++-compiler - en smule forældet?

Konferencer

Som normalt havde vi to hoved C++-konferencer - CppCon og Meeting C++, men jeg vil gerne nævne en anden, hvor C++ var kerneemnet -code::dive fra Wroclaw, PL. Derudover er der også NDC Oslo med et godt sæt samtaler.

CppCon

  • Link til den officielle side
  • Link til YouTube-kanal med videoer fra konferencen i år
  • Bedste CppCon 2016 talks,reddit

Turrapporter:

  • Anthony Williams, rejserapport
  • Vittorio Romero, rejserapport

Møde C++

Tidsplan.

I år holdt Bjarne Stroustrup indledende keynote ("Hvad C++ er, og hvad det bliver til"). Den afsluttende keynote blev præsenteret af Louis Dionne ("C++ metaprogramming:evolution and future directions").

Møde C++ 2016 Playlist

Kode::Dyk i Wroclaw, PL

15. og 16. november, code::dive

Endelig en virkelig fantastisk C++ konference i Polen! :)

I år tog konferencen to dage, og den indeholdt en masse talks om C++ og native-udvikling.

Nogle af oplægsholderne:Scott Meyers, Venkat Subramaniam, AndreiAlexandrescu, Dan Sacks, Ulrich Drepper, Michael Wong, Chandler Carruth, Sean Parent og meget mere!

code::dive 2016 afspilningsliste

NDC Oslo 2016

NDC Oslo 2016, 6.-10. juni 2016

Videoer fra konferencen

Indlæg:Andrei Alexandrescu, Anthony Williams, Dan Saks, DetlefVollmann, Mark Isaacson og flere.

BTW: Hovedproblemet med konferencerne:hvordan ser man alle disse værdifulde foredrag! :) Et tip er at se den med større hastighed (1,5x, 2,0x, …) i afspilleren, men alligevel kræver det meget tid!

Bøger

Nogle af de bøger, der er udgivet i år, der er værd at se:

  • Procedurel indholdsgenerering til C++ spiludvikling Paperback, 30. januar 2016, 30. januar 2016
  • Optimeret C++, af KurtGuntheroth, 21. maj 2016
  • C++ Game Development Cookbook, af DruhinMukherjee, 30. maj 2016
  • C++ Standard Library Quick Reference af Peter Van Weert MarcGregoire, 14. juni 2016
  • Qt5 C++ GUI Programming Cookbook, af Lee ZhiEng, 29. juli 2016
  • C++ på 24 timer , 6. udgave, af Rogers Cadenhead, JesseLiberty, 13. august 2016
  • C ++ Windows Programmering Paperback af StefanBjornander, 12. september 2016
  • Indstillinger og derivatprogrammering i C++, af CarlosOliveira, 30. september 2016
  • C++:The Ultimate Beginners Guide to C++ Programming af SteveTale, 3. december 2016

Jeg venter stadig på Large-Scale C++ bind I, JohnLakos, men dets udgivelsesdato flyttes senere og senere...

Oversigt

Jeg tror, ​​at C++-udviklere ledte efter meget mere med C++17. I 2015 fik vi en masse løfter, ideer om den nye standard, så folk begyndte at drømme for meget. Virkeligheden så lidt anderledes ud, mange af disse imponerende funktioner blev ikke accepteret eller sat i bero.

Alligevel skal vi ikke klage. C++ 17 vil være en rigtig anstændig udgivelse, og mange teams og virksomheder er ikke engang i nærheden af ​​at acceptere/bruge C++11. Tilpasningen er også en vigtig faktor, når man ser på sprogbrugen. Det er meget bedre at have pålidelige, verificerede, kontrollerede funktioner end noget skrøbeligt, der kan ændre sig. Jeg vil gerne have koncepter, intervaller, moduler snart ... men C++20 er ikke så langt. Og alligevel kan jeg lege med disse funktioner ved at bruge deres ganske stabile eksperimentelle versioner.

Jeg er glad for at se, at udvalget arbejder konsekvent og også ret gennemsigtigt. Man kan mærke det enorme fællesskab bag sproget. Så alt i alt tror jeg, at 2017 bliver et godt år for C++.

Eksklusiv bonus:
Download en gratis kopi af mit C++17-snydeark!

  • Hvad synes du om C++ i 2016?
  • Hvad var den vigtigste begivenhed/nyhed for dig?
  • Gik jeg glip af noget? Fortæl mig det i kommentarerne!

Afstemningen nedenfor:hvad er din foretrukne C++17-funktion?

Favorit C++17 funktioner