NPRG051 - Advanced Programming in C++

David Bednárek     Jakub Yaghob     Filip Zavoral

Timetable and slides

Toto je předběžný harmonogram přednášek a cvičení. Obsah přednášek i slajdy budou během semestru částečně aktualizovány.

CZE
Středa
14:00
LecturesSlidesExternal / additional resources
Středa
15:40
Tutorials
21.2. Introduction Learning C++
Concepts requirements, concepts
21.2. Tutorial
27.2. Templates lvalue/rvalue, perfect forwarding variadic templates
universal references, forwarding
6.3. Templates Working with references and values
Templates Standard library traits and tags
6.3. Tutorial
my_tuple
13.3. Metaprogramming in C++ Iteration through variadic lists
metaprogramming
20.3. Type deduction auto, structure bindings, deduction rules structured bindings   auto decltype   type deduction   C++20
20.3. Assignment #1
27.3. Type deduction deduction rules, CTAD, uniform initialization CTAD   initialization   modules
3.4. Type system type compatibility, type erasure, any, variant, visit, overload type erasure   overload   variant
3.4. Tutorial
7.4. Deadline #1
10.4. Libraries ranges, span, ud literals, ..., C++23 & beyond ranges   chrono  
17.4. Parallel programming C++11 concurrency
parallel algorithms, tasks, concurrency, parallel algorithms again
C++11 parallelism, C++11 concurrency again
17.4. Evaluation #1 + Assignment #2
24.4. Parallel programming some scary reading: BAD, UGLY, and GOOD
24.4. Tutorial
5.5. Deadline #2
15.5. Parallel programming
15.5. Evaluation #2 + Assignment #3
22.5. Networking, databases, AIO
Coroutines


Exploring C++20 Coroutines, Coroutines introduction, C++20 coroutines tutorial
2.6. Deadline #3
Additional slides
Exceptions
Extended versions of winter-term lectures
(NPRG041)
declarations-definitions
templates
Deeper examples related to summer-term lectures tuple
Very advanced topics mixin
Metaprogramming in C++ sfinae
Modules, interoperability Modules
type deduction   CTAD   initialization   ranges   modules   variant

 

Grading & Exam