Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
poprawnie,jednakbibliotekizostałynapisanenapoczątku2010rokuioka-
załosię,żeniemożliwestałosiędoprowadzeniedotego,byzesobąwspółpra-
cowałynawetpomodyfikacjachichkodówźródłowych.FirmaMicrosoft
wkońcuzabrałasięzatworzenienowegoparseraiwydałajegozaktualizo-
wanąwersjęw2018roku,mimotowieluprogramistówniewzięłogopod
uwagę.Ostatecznie,w2019rokunowyparserzacząłbyćdomyślniedołączany
donowychprojektów.
Jeszczeprzed2019rokiemmiałojednakmiejsceważnewydarzenie,
amianowiciew2011rokupojawiłosięwydanieC++11.Poopublikowaniu
wersjiC++98językzaczętouzupełniaćonowefunkcje.Zewzględunato,że
jednaztychfunkcjiniedziałałazgodniezoczekiwaniami,inauguracjanowej
wersjiC++opóźniłasięotrzylatado2009roku.Wmiędzyczasiepodej-
mowanopróby,abykompilatorzadziałałznowąfunkcją.W2009rokupro-
blemzostałostatecznieusunięty,pozostałaczęśćfunkcjizostałaprzystosowana
donowegowydania,awersjaC++z1998rokuzostałaostateczniezaktualizo-
wana.Pojawiłosięwięcmnóstwonowychfunkcjiiulepszeńbiblioteki.Kompi-
latoryznówniemogłynadrobićzaległościidlategowiększośćznichpotrafiła
skompilowaćprogramwwersjiC++11dopieropodkoniec2013roku.
KomitetjęzykaC++wyciągnąłwnioskizeswojejwcześniejszejporażki
ipostanowiłdokładniezaplanowaćkażdenowewydanie,któremiałosiępoja-
wiaćcotrzylata.Wpierwszymrokuplanowanostworzyćiprzetestowaćnowe
funkcje,wdrugimdobrzejezintegrować,atakżeuzyskaćichstabilnewer-
sje,awreszcieoficjalnieudostępnićwtrzecimroku.Tenprocesmiałbyćpo-
wtarzanycotrzylata.WersjaC++11byłapierwsząinstancją,aw2014roku
powinnasiępojawićdruga.Okazałosię,żekomitetzrobiłdokładnietakjak
obiecał,zdecydowaniezaktualizowałwersjęC++11iumożliwiłkorzystanie
zistniejącychfunkcjiwznaczniewiększymstopniu,niżbyłotodotejpory
możliwe.Pewnewcześniejistniejąceograniczeniazostałyzłagodzoneiza-
częłyobowiązywaćjedyniewprzypadkach,któreuznanozadopuszczalne
wszczególnościdotyczyłyonespecyfikatoraconstexpr.
Twórcykompilatorów,którzywciążpróbowalisprawić,bywszystkiefunk-
cjeC++11działałypoprawnie,zdalisobiesprawę,żemusząprzyspieszyć
swojeprace,ponieważwprzeciwnymraziezniknązrynku.Do2015roku
wszystkiekompilatoryobsługiwałyprawiepełenstandardC++14.Byłoto
niezwykłeosiągnięcie,biorącpoduwagęto,cowcześniejdziałosięzwersja-
miC++98iC++11.DziękitemuwpracachkomitetujęzykaC++zaczęli
ponownieuczestniczyćwszyscygłównitwórcykompilatorów.Byłotoważne,
ponieważwiedzaoplanowanych,alejeszczeniewdrożonychfunkcjachpowo-
dowała,żedanaorganizacjastawałasięautomatycznienajważniejszymtwór-
kompilatorów.Jeślinawetokazałobysię,żepewnafunkcjaniepasujedo
projektukompilatora,zawszemożnabyłowpłynąćnakomitetjęzykaC++
idostosowaćwtakisposób,któryznacznieułatwiłbyjejobsługęiumożliwił
innymprogramistomwcześniejszeskorzystaniezniej.
JęzykC++przeżywaobecnieodrodzenie.Okrestenrozpocząłsię
około2011roku,gdywprowadzonostandardC++11iprzyjętostylpro-
gramowaniazwanyfinowoczesnymjęzykiemC++”.Odtamtejporybyłon
udoskonalanyiwszystkiefunkcjewprowadzonewwersjiC++11zostałyulep-
szonewstandardachC++14iC++17.onewpełniobsługiwaneprzez
Przedmowa
xxvii