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 oraz std::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 obiekty std::future

Wymagania

Opanowane podstawy programowania w języku C++.

Czas trwania

3 dni po 8 godzin lekcyjnych
Wycena szkolenia zamkniętego

Szkolenie zamknięte w siedzibie Klienta.

Klient zapewnia salę szkoleniową i sprzęt.

Zapytaj o termin i cenę
Wycena szkolenia zdalnego

Szkolenie live online. Warsztaty z trenerem.

Zapytaj o termin i cenę
Terminy szkoleń otwartych

Brak terminu?

Zgłoś zainteresowanie szkoleniem