Advanced C++
FMI 2015
Dimitar Trendafilov
Who am I?
Co-founder & technical director of Coherent Labs
What are we going to talk about?
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)
- Overview of C++
- Resource management
- Move semantic
- Smart pointers - auto_ptr, unique_ptr, shared_ptr
- Namespaces, argument-dependent lookup
- Designing of an API, shared libraries, pImpl
Contents (2)
- Error handling and exceptions
- Lambda functions, generic functions (signals)
- Templates and type-erasure
- Static polymorphism and expression templates
- Standard Library - strings and regular expressions
- Standard Library - containers
Contents (3)
- Standard Library - iterators and algorithms
- Multithreaded and asynchronous programming
- Inheritance and polymorphism
- Memory management - custom allocators, pool allocators and DLLs
- Libraries and tools
- The future of C++
Grading
- Mid-term test 30%
- Final test 60%
- Taking part 10%