Cena Netto:
2 900.00 PLN
Brutto: 3 567.00 PLN
Nadchodzące szkolenia:
Warszawa
17.12.2018-18.12.2018

Generuj PDF

Zapisz się

Opis

Umiejętności zdobywane podczas kursu:

  • stosowanie metaprogramowania we własnych projektach
  • diagnozowanie błędów związanych z czasem kompilacji (czas przetwarzania szablonów)
  • definiowanie własnych języków zależnych od dziedziny

Cel

  • identyfikacja obszarów zastosowań metaprogramowania we własnych projektach
  • definiowanie mechanizmów związanych z metaprogramowaniem w języku C++
  • umiejętność definiowania własnych języków zależnych od dziedziny
  • podniesienie reużywalności kodu w projektach

Grupa docelowa:

Szkolenie przeznaczone jest dla doświadczonych programistów programujących w języku C++. Zakłada biegłą znajomość technologii szablonów oraz wzorców projektowych GoF. W trakcie zajęć słuchacze zapoznają się z technologią metaprogramowania, która umożliwia im tworzenie elastycznych komponentów.
Znajomość technologii metaprogramowania w istotnym stopniu podnosi reużywalność kodu w projektach i umożliwia przesunięcie konkretyzacji kodu do binarium z czasu kompilacji do etapu jego obróbki w trakcie przetwarzania szablonów.
W trakcie zajęć słuchacze zapoznają się z właściwościami biblioteki Boost oraz poznają możliwości definiowania własnych języków zależnych od dziedziny (DSL).

Uwagi:

Czas trwania szkolenia - 2 dni. 
Oferujemy szkolenia w naszych ośrodkach w Warszawie, Wrocławiu, Krakowie, jak i w lokalizacjach wskazanych przez klienta. 
W celu ustalenia szczegółów prosimy o kontakt na osec@osec.pl

Wymagania:

  • biegłe programowanie w języku C++ z użyciem paradygmatów proceduralnego, obiektowego oraz generycznego
  • podstawowa znajomość paradygmatu programowania funkcyjnego
  • stosowanie systemu szablonów we własnych aplikacjach
  • umiejętność biegłego programowania w środowisku wybranego IDE

Konspekt

  1. Metaprogramowanie - definicja i zakres zastosowania
    • programowanie czasu kompilacji
    • generatory obiektów
    • złożenia klas
    • wymazywanie typu
  2. Optymalizacja kodu w czasie kompilacji
    • powracający szablon
    • sizeof i jego zastosowanie
    • statyczny polimorfizm
  3. Cechy i manipulacja typem
    • powiązania typów
    • metafunkcje i metafunkcje numeryczne
    • biblioteka Boost Type Traits
    • metafunkcje bezargumentowe
    • implementacja lambda
  4. Iteratory i sekwencje
    • definicja sekwencji i iteratora
    • klasy sekwencji
    • definiowanie własnych sekwencji
  5. Dostępne algorytmy
    • idiomy i abstrakcja algorytmów oraz wielokrotne użycie
    • pojęcie i definicja insertera
    • definiowanie własnych algorytmów
  6. Widoki i adaptery iteratorów
    • pojęcie i definiowanie własnego widoku
    • adapter interatora i jego obsługa
  7. MPL - biblioteka wspierająca metaprogramowanie
    • przegląd możliwości Boost MPL
    • zastosowanie Boost MPL
  8. Języki osadzone zależne od dziedziny
    • języki DSL (ang. domain specific language) i zakresy ich zastosowań
    • biblioteka Boost Spirit jako przykład DSL