Egzamin zwyczajowo składa się z dwóch zadań, każde za 50% punktów. Najczęściej polegają na wypełnieniu kodu, aby się skompilował i spełniał założenia zadania. Czasem może być trzeba rozszyfrować sam output kodu, ale to chyba rzadkość.
Kod piszemy tylko tam, gdzie jest zaznaczone na niego miejsca (komentarz w kodzie). W niektórych zadań jest dodatkowa instrukcja, że zakomentowane fragmenty po odkomentowaniu miałyby zwrócić błąd kompilacji.
WAŻNE: Większość kodu powinna być okraszona komentarzami, wyjaśniającymi dlaczego napisaliśmy coś tak a nie inaczej. Brak komentarzy == Zadanie nie jest ocenianie.
WAŻNE: Jeżeli kompilator może wygenerować za nas kod, powinniśmy mu na to pozwolić. Piszemy więc minimalną ilość potrzebnego kodu.
- Metody Wirtualne, Dziedziczenie Wielokrotne, __PRETTY_FUNCTION__, Object Slicing, Operator Zakresu
- Słowo Kluczowe Explicit, Konstruktor Przenoszący, __PRETTY_FUNCTION__, Argumenty Domyślne
- Przeładowywanie Operatora <<
- Abstract Base Class, Metody Wirtualne, __PRETTY_FUNCTION__, Object Slicing, Przeładowywanie Operatora <<
- Szablony Klas, Przeładowywanie Operatorów, Przeładowywanie Operatora <<
- std::unique_ptr, Argumenty Domyślne, Szablony Funkcji
- Rule of Five, Szablony Klas, Przeładowywanie Operatorów
- Szablony Klas, Abstract Base Class, Operator Konwersji, __PRETTY_FUNCTION__, Przeładowywanie Operatora <<
- Szablony Funkcji, Iteratory, std::function, Funktory
- Wyrażenia Lambda, std::function
- Szablony Klas, Przeładowywanie Operatorów
- Generyczne Wyrażenia Lambda
- Konstruktory i Operatory Kopiujące i Przenoszące
- Partial Template Specialization, Szablony Klas
- Template Template Parameters, Szablony Klas, Iteratory
- Szablony Klas, std::initializer_list, Przeładowywanie Operatorów