Metaprogramowanie w języku C++

LICZBA DNI: 3 (24h)

KOD KURSU: CPP/META

POZIOM SZKOLENIA:

# 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-iteratora 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.