Wprowadzenie do standardu C++11¶
Historia standaryzacji C++¶
1998 - pierwszy standard ISO C++
2003 - TC1 („Technical Corrigendum 1”) opublikowane jako („C++03”). Poprawki błędów (bug fixes) dla C++98
2005 - opublikowany „Technical Report 1”
2011 - C++0x ratyfikowany jako C++11
2014 - C++14 - minor revision
2017 - C++17 - umiarkowana modyfikacja standardu
2020 - C++20 - duża modyfikacja standardu
W trakcie pisania standardu C++11 priorytetem była kompatybilność z wcześniejszymi wersjami standardu.
Nowe słowa kluczowe w C++11¶
alignas
,alignof
,char16_t
,char32_t
,constexpr
,decltype
,noexcept
,nullptr
,static_assert
,thread_local
Elementy uznane w C++11 za przestarzałe (deprecated)¶
Funkcje wiążące
bind1st
,bind2nd
, itp.Specyfikacja rzucanych wyjątków przez funkcje
Klasa
auto_ptr<>
Specyfikator
register
Ostrzeżenie
Kod C++11 może być binarnie niekompatybilny z kodem C++03
Stałe definiujące wersje¶
Stała preprocesora __cplusplus
definiuje, która wersja standardu jest dostępna w trakcie kompilacji. Wartości, jakie może przyjmować, to:
dla C++98 i C++03 |
|
dla C++11 |
|
dla C++14 |
|
Wsparcie dla C++11 w kompilatorze GCC¶
Wybrane elementy C++11 są wspierane od wersji 4.3
Podstawowe funkcjonalności - wersja 4.6
Należy użyć opcji kompilacji:
-std=c++11
- od wersji 4.7
Szczegóły: http:://gcc.gnu.org/projects/cxx0x.html
Wsparcie dla C++14¶
Podstawowe funkcjonalności od wersji 4.9
Opcja kompilacji
-std=c++14
Szczegóły: http:://gcc.gnu.org/projects/cxx1y.html