[wersja przejrzana][wersja przejrzana]
Usunięta treść Dodana treść
m Kilka pomniejszych zmian, głównie w kodzie strony
m Usunięcie niepotrzebnie nadanych nazw przypisom
Linia 27:
W latach 90. XX wieku język C++ zdobył pozycję jednego z najpopularniejszych języków programowania ogólnego przeznaczenia. Na początku XXI wieku liczbę programistów języka C++ szacowano na około 3 miliony<ref>{{Cytuj stronę | url = http://www.stroustrup.com/bs_faq.html | tytuł = Bjarne Stroustrup's FAQ | nazwisko = Stroustrup | imię = Bjarne | język = en | data dostępu = 2015-04-16}}</ref>.
 
Język C++ jest [[Standard|standaryzowany]] przez [[Międzynarodowa Organizacja Normalizacyjna|ISO]]. Ostatnia, najnowsza z wersji standardu, nazywana [[C++17]], opublikowana została w grudniu 2017 jako ISO/IEC 14882:2017<ref name=isocpp2017"iso_c++17">{{cytujCytuj stronę | url = https://www.iso.org/standard/68564.html | tytuł = ISO/IEC 14882:2017 | język = en | data dostępu = 2017-12-18 | opublikowany = International Organization for Standardization}}</ref>. Pierwszą wersję, [[C++98]], opublikowano w 1998 jako ISO/IEC 14882:1998<ref name=isocpp1998>{{cytujCytuj stronę | url = http://www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?ics1=35&ics2=60&ics3=&csnumber=25845 | tytuł = ISO/IEC 14882:1998 | język = en | data dostępu = 2017-12-18 | opublikowany = International Organization for Standardization}}</ref>. Następnie kilkukrotnie standard aktualizowano:
[[C++03]]<ref name=isocpp2003>{{cytujCytuj stronę | url = http://www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?ics1=35&ics2=60&ics3=&csnumber=38110 | tytuł = ISO/IEC 14882:2003 | język = en | data dostępu = 2017-12-18 | opublikowany = International Organization for Standardization}}</ref>, [[C++11]]<ref name=isocpp2011>{{cytujCytuj stronę | url = http://www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?ics1=35&ics2=60&ics3=&csnumber=50372 | tytuł = ISO/IEC 14882:2011 | język = en | data dostępu = 2017-12-18 | opublikowany = International Organization for Standardization}}</ref><ref>{{cytujCytuj stronę | url = http://www2.research.att.com/~bs/C++0xFAQ.html | tytuł = C++11 FAQ | nazwisko = Stroustrup | imię = Bjarne | data = 2012-02-23 | język = en | data dostępu = 2015-12-08 | archiwum = http://web.archive.org/web/20120624062540/http://www2.research.att.com/~bs/C++0xFAQ.html | zarchiwizowano = 2012-06-24}}</ref><ref>{{cytujCytuj stronę | url = http://gcc.gnu.org/gcc-4.4/changes.html | tytuł = GCC 4.4 Release Series Changes, New Features, and Fixes | opublikowany = [[Free Software Foundation]] | język =en | data dostępu = 2015-04-16}}</ref> (opracowany już w 2009 jako C++0x, jednak opublikowany dopiero w 2011)<ref>{{cytujCytuj stronę | url = https://herbsutter.com/2011/08/12/we-have-an-international-standard-c0x-is-unanimously-approved/ | tytuł = We have an international standard: C++0x is unanimously approved | język = en | data dostępu = 2017-12-18 | imię = Herb | nazwisko = Sutter | opublikowany = Sutter's Mill}}</ref>, oraz [[C++14]] <ref name=isocpp2014>{{cytujCytuj stronę | url = http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=64029&ICS1=35&ICS2=60 | tytuł = ISO/IEC 14882:2014 | język = en | data dostępu = 2017-12-18 | opublikowany = International Organization for Standardization}}</ref>. Obecnie planowana jest już kolejna wersja standardu, na razie roboczo nazywana [[C++2a]]<ref>{{cytujCytuj stronę | url = https://herbsutter.com/2016/06/30/trip-report-summer-iso-c-standards-meeting-oulu/ | tytuł = Trip report: Summer ISO C++ standards meeting (Oulu) | język = en | data dostępu = 2017-12-18 | opublikowany = Sutter's Mill}}</ref>.
 
== Cechy standardów ==
Linia 35:
Większość użytecznych programów w C++ wymaga stosowania bibliotek niestandardowych. Są one łatwo dostępne w Sieci zarówno jako produkty własnościowe, jak i jako [[Wolne i otwarte oprogramowanie|FLOSS]]. Programy napisane w C++ mogą korzystać również z zasobów bibliotek języka C.
 
Język C++ posiada swój oficjalny standard (aktualnie jest to [[C++17]] z 2017)<ref name=isocpp2017"iso_c++17" />.
 
Język C++ nie jest własnością żadnej osoby, instytucji czy korporacji.
Linia 43:
* Język C++ zakłada statyczną kontrolę typów; posiada też elementy dynamicznej kontroli typów.
* Język C++ umożliwia bezpośrednie zarządzanie wolną pamięcią.
* Projekt języka zakłada, że żadna nowa (względem języka C) cecha języka C++ nie może mieć negatywnego wpływu na szybkość działania programu lub zapotrzebowanie na pamięć operacyjną. Dzięki temu dobrze napisany program w C++ jest z reguły co najmniej równie szybki, jak jego odpowiednik napisany w C; co więcej, dzięki możliwości zastosowania algorytmów generycznych w wielu przypadkach C++ jest wyraźnie szybszy od C (np. podczas sortowania)<ref name="c">{{cytujCytuj stronę | url = http://www.luna.umcs.lublin.pl/download/programowanie_c++.pdf | tytuł = Programowanie w C++ | autor = Grzegorz M. Wójcik| rok = 2009 | archiwum = http://web.archive.org/web/20090617135519/http://www.luna.umcs.lublin.pl/download/programowanie_c++.pdf | zarchiwizowano = 2009-06-17 | data dostępu = 2015-04-16}}</ref>.
* Język C++ ze względu na bardzo rozbudowaną składnię oraz surowe wymogi w zakresie wydajności kodu stanowi duże wyzwanie dla twórców kompilatorów<ref name="c" />.
* Do dziś (2012) żaden popularny kompilator nie jest w pełni zgodny z obowiązującym standardem języka, aczkolwiek ewentualne niezgodności dotyczą już tylko drugorzędnych cech języka (np. implementacji słowa kluczowego <code>export</code>)<ref>{{Cytuj stronę | url = http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/2003/n1426.pdf | tytuł = Why We Can’t Afford Export | nazwisko = Sutter | imię = Herb | nazwisko2 = Plum | imię2 = Tom | data = 2003-03-03 | język = en | data dostępu = 2015-04-16 | archiwum = http://web.archive.org/web/20110607081340/http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/2003/n1426.pdf | zarchiwizowano = 2011-06-07}}</ref><ref>{{Cytuj stronę | url = https://gcc.gnu.org/onlinedocs/gcc-4.4.0/gcc/Standards.html | tytuł = Language Standards Supported by GCC | praca = [https://gcc.gnu.org/onlinedocs/gcc-4.4.0/gcc/ Using the GNU Compiler Collection (GCC)] | opublikowany = [[Free Software Foundation]] | język = en | data dostępu = 2015-04-16}}</ref>.