Diversity w polskim IT
Bulldogjob
Bulldogjob

C++ 20 prawie gotowy na premierę

Nowe wydanie języka C++, czyli 20, przechodzi do ostatniej fazy i będzie ostatecznie gotowe do wydania pod koniec 2020 roku.
8.09.20202 min
C++ 20 prawie gotowy na premierę

C++ 20, czyli najnowsza wersja tego języka programowania, jednogłośnie przeszła ostateczne głosowanie techniczne organizacji ISO (Międzynarodowa Organizacja Normalizacyjna) i oczekuje końcowej pracy edytorskiej, po której może zostać opublikowana. Według twórców stanie się to najprawdopodobniej pod koniec 2020 roku. Każda wersja major języka C++ wychodzi raz na trzy lata, a nazwa wersji pochodzi od roku, w którym zostaje ona wydana. Tak więc ostatnio mieliśmy C++ 17, a teraz czekamy oczywiście na C++ 20. 

Wielka czwórka C++ 20

„Dwudziestka” ma być dużym wydaniem, zdecydowanie większym od poprzednich. W założeniu mamy dostać cztery nowe główne funkcje, często też nazywane w tym kontekście „wielką czwórką”. 


Moduły

Kod źródłowy jest kompilowany tylko raz, a potem używany ponownie jako binarka. Jest to szybsza alternatywa dla plików nagłówkowych, trochę bardziej izoluje sam kod i przyśpiesza czas kompilowania. 

Sam Bjarne Stroustrup, twórca języka, wyodrębnił moduły jako jedną z dwóch najważniejszych nowych funkcji w C++ 20, ponieważ skaracją one czas kompilacji od 5 do nawet 10 razy. 


Koncepty

Jest to druga funkcja podkreślana przez twórcę C++. Mówi on, że koncept jest predykatem czasu kompilacji, który może zmniejszyć ograniczenia dla typów. Stroustrup podaje również następujący przykład: jeżeli szablon przyjmuje typ, to możemy określić, że np. ten typ będzie iteratorem, albo liczbą całkowitą. Koncepty pozwalają na przeciążanie i pozwalają unikać niepotrzebnego metaprogramowania. Dzięki konceptom nie będzie już trzeba wykonywać dużej ilości metaprogramowania. 


Biblioteka Ranges

Kolejną nową funkcją należącą do wielkiej czwórki jest biblioteka ranges. Zapewni ona mechanizm do radzenia sobie z szeregami iterowalnych elementów, opakowując je w abstrakcję range i dorzucając tzw. views, które pozwalają na transformacje tych szeregów. 


Coroutine

Coroutine, czyli współprogram, to funkcja, która może zawiesić wykonywanie i uruchomić je później. Współprogramy działają poza stosem. Dzieje się tak, ponieważ wysyłają one wykonanie z powrotem do wywołującego, a dane potrzebne do ponownego uruchomienia wykonania są przechowywane poza stosem.


Funkcja odrzucona

Funkcją, która nie pojawi się ostatecznie w C++ 20 są kontrakty. Nie są one ostatecznie gotowe i dlatego zostaną poddane dalszym badaniom. Ogólnie Stroustrup twierdzi, że C++ 23 uzupełni, to czego zabraknie w „dwudziestce”

Czas uprościć C++

Niektórzy mogą się obawiać, że dodawanie nowych funkcji sprawi, iż C++ stanie się dużo za duże. Nowe funkcje powinny jednak sprawić, że język ten stanie się prosty, a obecnie jest dla wielu zbyt duży i za bardzo odstraszający. 

Stroustrup twierdzi, że głównym celem „Dwudziestki” będzie redukcja metaprogramowania związanego z szablonami (template metaprogramming), które już teraz się nie sprawdza. Twórca języka oddaje jednak tej metodzie fakt, że była ona szeroko używana, pomimo swojej brzydoty, co świadczy o tym, że okazała się bardzo przydatna.

<p>Loading...</p>