Advanced C++

FMI 2015

Dimitar Trendafilov

Who am I?

Co-founder & technical director of Coherent Labs

What are we going to talk about?

C++

By C++ we are going always to understand the Standard C++.Freely accessible draft

Modern C++

The alternative title

Practical C++

The alternative-alternative title

The kind of C++ used in practice - it is converging with the modern C++.

Why not Modern C++ then?

  • Lots of information avaliable
  • Knowledge of the internals of the language
  • Patterns in the language

Contents (1)

  1. Overview of C++
  2. Resource management
  3. Move semantic
  4. Smart pointers - auto_ptr, unique_ptr, shared_ptr
  5. Namespaces, argument-dependent lookup
  6. Designing of an API, shared libraries, pImpl

Contents (2)

  1. Error handling and exceptions
  2. Lambda functions, generic functions (signals)
  3. Templates and type-erasure
  4. Static polymorphism and expression templates
  5. Standard Library - strings and regular expressions
  6. Standard Library - containers

Contents (3)

  1. Standard Library - iterators and algorithms
  2. Multithreaded and asynchronous programming
  3. Inheritance and polymorphism
  4. Memory management - custom allocators, pool allocators and DLLs
  5. Libraries and tools
  6. The future of C++

Administrative

Grading

  • Mid-term test 30%
  • Final test 60%
  • Taking part 10%