Programowanie w C++20

Zakres szkolenia

Na szkoleniu uczestnicy poznają najważniejsze zmiany wprowadzone do standardu C++20, takie jak koncepty i ograniczenia szablonów, moduły, nowe reguły dla wyrażeń i funkcji constexpr oraz wyrażeń lambda. Omówione zostaną również nowe biblioteki usprawniające tworzenie efektywnego i bezpiecznego kodu w C++.


Plan szkolenia

Nowości w składni języka

  • Range-based for z sekcją inicjującą
  • Nowe atrybuty standardowe
  • Warunkowy explicit
  • Zmiany w structured bindings

Desygnowane inicjalizatory

  • Agregaty i nowa składnia inicjalizacji

Nowy operator porównania operator<=> ("spaceship operator")

  • Implementacja operacji porównujących w C++20

Stałe w C++20

  • constexpr - zmiany w stosunku do C++11/14/17
    • Poszerzone reguły wyrażeń constexpr
  • consteval
  • constinit

Szablony w C++20

  • Literały tekstowe jako parametry szablonów
  • Nowe reguły dla typename

Koncepty i wyrażenia ograniczające

  • Definicja konceptu
  • Koncepty i ograniczenia szablonów
  • Wyrażenia requires
  • Biblioteka konceptów standardowych

Wyrażenia lambda w C++20

  • Wyrażenia lambda z parametrami szablonowymi
  • Lambdy w unevaluated contexts
  • Nowe reguły przechwytywania zmiennych
  • Domyślnie konstruowalne i przypisywalne domknięcia

Moduły

  • Moduły, przestrzenie nazw i ADL
  • Moduły i pliki nagłówkowe
  • Import i eksport modułów

Nowości w bibliotece standardowej

  • std::ranges
  • std::span
  • Atomowe smart pointery
  • std::to_address - konwersja pointera do raw-pointera
  • Kalendarz i strefy czasowe w <chrono>
  • Algorytmy constexpr

Dobra znajomość C++11/14/17.

3 dni po 8 godzin lekcyjnych