2016-08-05 16 views
8

Słyszałem dużo szumu na temat C++ 17 i C++ 14, nawet po uruchomieniu C++ 11.Czy C++ 21 jest następnym standardem?

Ale teraz rozumiem, że C++ 17 jest na dobrej drodze do dostarczenia (bez koncepcji) jesienią 2017 r., Ale nadal nie jestem pewien, jaki jest następujący standard.

Słyszałem, że C++ 21 został przekopany. Czy to jest dokładne?

+20

Poczekaj, pozwól mi uruchomić automat wehikułu czasu, a powiadomię cię 5 minut temu. – Pubby

+2

Nie jestem dokładnie pewien, czy to pytanie dotyczy tematu, czy nie. – VermillionAzure

+2

Pomyślałem, że była dyskusja na temat nowego standardowego wydarzenia w 2019 roku, które przechodzi przez C++ NEXT, ponieważ 1z było już ostatni ostatni w alfabecie. – midor

Odpowiedz

17

Patrząc jak ISOCPP widzimy

enter image description here

co pokazuje, że przynajmniej teraz C++ 20 to nazwa ich użyciu.

+10

Uwielbiam to, że w latach 1998-2001 nawet nie dokonałem cięcia, kto i tak potrzebuje tych lat – Barry

+5

Najwyraźniej tak się nie stało. Czuję, że w tych latach potrzebna jest jakakolwiek poprawa – NathanOliver

+2

@Barry Naprawdę zdumiewające jest to, że przy wszystkich zmianach w branży C++ pozostało aktualne bez aktualizacji przez dekadę Mówię o bardzo potrzebnym segmencie rynku, tak przypuszczam, –

9

Nikt nie może jednoznacznie powiedzieć dokładnej daty premiery. Ale biorąc pod uwagę ostatnie wydania C++ C++ 11, C++ 14, C++ 17, wydaje się, że mamy trzyletni cykl wydań.

W rzeczywistości Herb Sutter wrote in June 2016:

Uwaga: [...], ale teraz jesteśmy pobyt z trzech lat, więc następnym standardem C++ po 17 będzie C++ 20.

Najprawdopodobniej będzie to C++ 20. Wszystkie funkcje, które nie będą gotowe do tego czasu, prawdopodobnie zostaną przełożone na późniejszą wersję C++.

Jeśli jesteś zainteresowany rozwojem C++, polecam regularne czytanie C++ subreddit. Oczywiście w sieci jest many more resources.

7

Zauważysz, że C++ 1z jest nadal w użyciu i jest teraz kompletny. Ale to nie stanie się C++ 17 , dopóki nie zostanie opublikowane w 2017 roku.

W tym momencie nie powinniśmy mówić o C++ 20 lub C++ 21, nawet jeśli jest to docelowa data. Powinniśmy mówić o C++ 2a lub C++ 2x.

Obecny plan dotyczy 3-letniego cyklu wydawniczego, a niektórzy skarżą się na przejście do 2-letniego cyklu wydawniczego. Ale oficjalnie pozostaje to 3 lata, więc docelową datą następnego jest rok 2020.

Jak jednak powinniśmy to teraz nazwać? C++ 2x napotyka problem, że jeśli w latach 2020 pojawi się więcej niż 3 wydania standardów, zabraknie nam liter. Po 3 latach na wydanie, to byłby rok 2020, 2023, 2026, 2029 - o jeden za dużo. Mówiono też o próbie 2-letniego cyklu wydawniczego (może nawet dla C++ 2x, który pojawiłby się w 2019 roku, co byłoby zabawne po tym, jak C++ 0x pojawi się w 2011 roku).

Każde takie zamieszanie będzie warte pochwał w łamaniu cyklu nazewnictwa i może wprowadzić C++ 2α lub C++ 2Ω, co jest kolejnym plusem.

Tak więc odpowiedź na twoje pytanie: następny standard powinien być w tym miejscu nazywany C++ 2x, a x może być dowolną wartością od -1 do +3, jeśli historia jest jakąkolwiek wskazówką: docelowa data to 2020, ale około połowa wszystkich standardowych wydań C++ nie pojawiła się w roku, w którym planowano, więc weź to z przymrużeniem oka.

+3

. powiem, że nazwa powinna odróżniać, czy jest to wydany standard, mogę docenić ten niuans, a jeśli istnieje oficjalna nazwa, nie mam nic przeciwko używaniu go. komitet darda gra dość szybko i przegrywa z C++ 17. Rzadko, jeśli w ogóle, widzę, że odnoszą się one do C++ 1z. –

+0

Poważnie, wyczerpywanie się liter nie jest powodem do osiągnięcia docelowej daty następnego standardu C++. Proszę zachować odpowiedzi na punkt. – dhaumann

+1

@dhaumann Nie mamy podróży w czasie. Nie wiemy, kiedy pojawi się kolejna wersja. Jako takie, najlepsze, co możemy zrobić, to (A) odgadnąć, kiedy to nastąpi, i (B) wypracować dla niego niejednoznaczną roboczą nazwę. Historycznie 50% (lub więcej?) Standardów C++, które nie zostały dostarczone w roku, w którym zostały zaplanowane. Twierdzą, że zrobią to lepiej: są słabe dowody (tak jak uderzyły 1 i są na dobrej drodze dwa razy z rzędu, a plan jest solidny). Ale dyskusja na temat * tego, co powinniśmy teraz nazywać * jest, jak sądzę, ważna. – Yakk

Powiązane problemy