Programowanie w C++11/14

Zakres szkolenia

Szkolenie przeznaczone dla programistów C++ chcących poznać nowości wprowadzone do języka i biblioteki standardowej w standardzie C++11/14


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 detekcja typów
    • mechanizm auto
    • mechanizm 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()
  • Forwarding reference
  • Perfect Forwarding

Wyrażenia lambda

  • Definiowanie wyrażeń lambda
  • Klasy domknięcia - typizacja lambd
  • Przechwytywanie zmiennych - obiekty domknięć
  • Zagnieżdżone funkcje lambda
  • Funkcje lambda wyższego rzędu
  • Lambdy w C++14

Metaprogramowanie w C++11

  • Statyczne asercje - static_assert
  • Cechy typów - biblioteka Type Traits
  • Uogólnione stałe wyrażenia oraz funkcje - constexpr
  • Variadic templates

Nowości w bibliotece standardowej

  • Inteligentne wskaźniki (sharedptr, weakptr, unique_ptr) ­
  • Nowe cechy kontenerów (semantyka przenoszenia, zmiany w interjesach, itp.)
  • Kontenery z haszowaniem ­
  • Tablice o stałym rozmiarze ­
  • Krotki ­- tuples
  • Uogólnione obiekty wywoływalne - std::function ­
  • Nowości w algorytmach standardowych ­
  • Generatory liczb pseudolosowych

Wstęp do programowania współbieżnego w C++11/14 ­

  • Zadania asynchroniczne – std::async() i obiekty futures

3 dni po 8 godzin lekcyjnych