Programowanie w C++11/14
Cele szkolenia
Uczestnicy szkolenia poznają:
- nowości wprowadzone do języka i biblioteki standardowej w standardzie C++11/14
- nowe elementy języka C++, takie jak nullptr, mechanizmy dedukcji auto i decltype, pętlę range-based for, silnie typizowane typy wyliczeniowe (scoped enums) oraz jednolitą składnię inicjalizacji
- implementację semantyki przenoszenia dla klas
- mechanizm perfect forwarding'u
- praktyczne zastosowanie wyrażeń lambda w połączeniu z biblioteką STL
- nowości w bibliotece standardowej, takie jak std::tuple, kontenery z haszowaniem oraz nowe algorytmy standardowe
Plan szkolenia
Porównanie standardów: C++98, C++11 oraz C++14
Nowości w składni języka
- Nowe typy podstawowe w C++11
- Literały znakowe - raw strings
- Pusty wskaźnik nullptr
- Automatyczna dedukcja typów
- Mechanizm dedukcji auto
- Mechanizm dedukcji decltype
- Nowa składnia deklaracji funkcji
- Nowe typy wyliczeniowe - scoped enumerations
- Pętle for dla zakresów (range-based-for)
- Jednolita składnia inicjalizacji
- Listy inicjalizujące
- Aliasy szablonów
Nowości w klasach
- Specjalne funkcje składowe
- Domyślna inicjalizacja składowych niestatycznych
- Delegowanie i dziedziczenie konstruktorów
- Kontrola nadpisywania metod wirtualnych -
override
- Funkcje konwersji deklarowane jako
explicit
- Blokowanie dziedziczenia lub nadpisywania metod -
final
Semantyka przenoszenia - move semantics
- Motywacja dla wprowadzenia semantyki przenoszenia
- lvalues i rvalues
- Referencje rvalue - rvalue references
- Implementacja semantyki przenoszenia
- Semantyka przenoszenia w klasach
- Słowo kluczowe
noexcept
- Implementacja funkcji
std::move()
- Mechanizm Perfect Forwarding
Wyrażenia lambda
- Definiowanie wyrażeń lambda
- Klasy domknięć
- Przechwytywanie zmiennych - obiekty domknięć
- Zagnieżdżone funkcje lambda
- Funkcje lambda wyższego rzędu
- Lambdy w C++14 - lamdy generyczne
Metaprogramowanie w C++11
- Statyczne asercje -
static_assert
- Cechy typów - biblioteka Type Traits
- Uogólnione stałe wyrażenia oraz funkcje -
constexpr
- Szablony wariadyczne - variadic templates
Nowości w bibliotece standardowej
- Inteligentne wskaźniki -
std::unique_ptr
,std::shared_ptr
orazstd::weak_ptr
- Nowe cechy kontenerów (semantyka przenoszenia, zmiany w interfejsach, itp.)
- Tablice o stałym rozmiarze -
std::array
- Kontenery z haszowaniem
- Krotki -
std::tuple
- Uogólnione obiekty wywoływalne -
std::function
- Nowości w algorytmach standardowych
Wstęp do programowania współbieżnego w C++11/14
- Zadania asynchroniczne –
std::async()
i obiektystd::future
Wymagania
Opanowane podstawy programowania w języku C++.
Czas trwania
3 dni po 8 godzin lekcyjnychWycena szkolenia zamkniętego
Szkolenie zamknięte w siedzibie Klienta.
Klient zapewnia salę szkoleniową i sprzęt.
Zapytaj o termin i cenę