Metaprogramowanie w języku C++

LICZBA DNI: 3 (24h)

KOD KURSU: CPP/META

# c

# boost

Szkolenie na zamówienie

Szkolenie dostosowane do potrzeb Twojego zespołu. Dostępne WYŁĄCZNIE na zamówienie.

  • Dostosowany program
  • Indywidualna wycena
  • Dowolny termin

Interesuje Cię ta tematyka i szukasz szkolenia tylko dla siebie?

O szkoleniu

DLA KOGO?

Zaawansowanych programistów programujących w języku C i C++ w środowisku GNU/Linux lub MS Windows.

Osób praktycznie stosujących system szablonów STL we własnych projektach.

Programistów tworzących oprogramowanie na platformie systemowej GNU/Linux lub MS Windows.

Programistów tworzących aplikacje głównego nurtu oraz aplikacje sieciowe.

WYMAGANIA

Posługiwanie się wybranym środowiskiem IDE (Eclipse, NetBeans, vim).

Bardzo dobra znajomość koncepcji programowania obiektowego, systemowego i aplikacyjnego.

Znajomość narzędzi do tworzenia aplikacji z rodziny gcc i binutils.

Umiejętność posługiwania się narzędziem debuggera.

Dobra orientacja w bibliotekach i narzędziach dostępnych w ramach stosu technologii C++.

Znajomość koncepcji związanych z programowaniem w języku C++ na poziomie zaawansowanym.

ZALETY

Skupiamy się na tych zagadnieniach, które w bezpośredni sposób podnoszą wydajność w codziennej pracy programisty, uwzględniając charakter jego pracy (reaktywna – dodawanie nowych funkcjonalności, wytwarzanie – tworzenie oprogramowania od podstaw).

Zajęcia obejmują zagadnienia związane z koncepcjami algorytmów, iteratorów i zaawansowanych struktur danych na poziomie metaprogramowania.

W przykładach wykorzystywane są elementy biblioteki standardowej w standardzie C++11 oraz elementy biblioteki Boost wspierające koncepcje tworzenia aplikacji na poziomie meta.

Szczególny nacisk w trakcie zajęć kładziemy na zrozumienie aspektów wydajności czasu kompilacji oraz dostępnymi w standardzie C++11 narzędziami zwiększającymi produktywność programisty.

Prezentowane mechanizmy odnosimy do aspektów praktyki, prezentując ich zalety, a także i koszt stosowania.

Na zajęciach posługujemy się technologiami otwartymi z dostępem do kodu źródłowego.

Zajęcia prowadzone są przez doświadczonych praktyków, którzy na co dzień stosują technologie związane z językiem C++ w rzeczywistych projektach. W trakcie zajęć używamy technologii i środowisk otwartych.

Cele szkolenia

Poznanie technik identyfikowania obszarów zastosowań metaprogramowania we własnych projektach (toczących się jak i tych nowych).

Zapoznanie się z dostępnymi mechanizmami związanymi z metaprogramowaniem dostępnymi w języku C++11 jak i starszych.

Zapoznanie się z biblioteką Boost MPL.

Nauka praktycznego określania obszarów zastosowań technik metaprogramowania w języku C++ we własnych projektach.

Nauka samodzielnego implementowania mechanizmów „poziomu meta” we własnych aplikacjach.

Nauka podnoszenia reużywalności kodu projektów i bibliotek.

Program

  • Programowanie czasu kompilacji.
  • Generator klas.
  • Złożenie klas.
  • Zmiana typu i podstawienie typu.
  • Zadziwiająco często powracający szablon.
  • Sizeof i zakres jego zastosowań.
  • Polimorfizmy – statyczny i dynamiczny.
  • Powiązania i relacje pomiędzy typami.
  • Metafunkcje i metafunkcje numeryczne.
  • Biblioteka Boost Type Traits.
  • Metafunkcje bezargumentowe.
  • Lambda – w ramach C++11 oraz Boost.
  • Definicja sekwencji i iteratora na poziomie meta.
  • Dostępne klasy sekwencji na poziomie meta.
  • Definiowanie własnych sekwencji.
  • Idiomy i abstrakcja algorytmów.
  • Wielokrotne użycie meta-algorytmów.
  • Inserter na poziomie meta.
  • Definiowanie własnych meta-algorytmów.
  • Pojęcie i definiowanie własnego widoku.
  • Adapter meta-interatora i jego obsługa.
  • MPL - biblioteka wspierająca metaprogramowanie.
  • Przegląd możliwości Boost MPL.
  • Zastosowanie Boost MPL.
  • Języki DSL (ang. domain specific language) i zakresy ich zastosowań.
  • Definiowanie własnych języków DSL.
  • Leniwe typowanie na poziomie meta.
  • Klasy i funkcje narzędziowe.
  • Kruczki i sztuczki w programowaniu na poziomie meta.

POLITYKA COOKIES:

Korzystamy z plików cookies, by móc jak najlepiej dostosować stronę do Twoich potrzeb oraz wyświetlać Ci przydatne i adekwatnych dla Ciebie reklamy w serwisie i poza nim. Możesz kontrolować ustawienia ciasteczek w swoich ustawieniach swojej przeglądarki. Odwiedzając tę stronę, wyrażasz zgodę na wykorzystywanie przez nas plików cookies.