
Kursbeskrivning
This is the course for experienced C++ programmers curious about the heavily extended C++11 Standard Library, and the design principles in the tradition of the STL and Boost Libraries - policy based design.
As an introduction there is a thorough presentation of the new language features in C++11/14/17. Course focus is on how to use the Standard and the Boost Libraries by understanding policy based design. For a deep dive course in the language C++ itself, see T104 C++ Advanced Programming.
Several labs illustrate the theory by using the classes of the libraries. An incremental lab series builds a multithreaded in-memory relational database with serialization. All produced code is platform independent and all labs are IDE independent.
1. Introduction
2. New Features of C++11/14/17
auto and decltype
Structured Binding
nullptr
Range Based for
override and final
Unicode Support
Raw Literal Strings
default and delete
explicit Converters
bool Converter
static_assert
enum class
long long
Exception declarations
Const and constexpr
User Defined Literals
3. Uniform Initialization
In the Class Declaration
Inter-constructor Calls
Inherited Constructors
Curly Bracket Initialization
4. Collections and Algorithms
Overview Collections and Algorithms
Template Collections
The string Class
Iterators
Some Boost Classes
5. Templates
Template Basics
Parameters
typedef and using
Typename Ambiguity
Specialization and Partial Specialization
Static Members
Template Metaprogramming
Explicit Instantiation and extern
6. Function Objects and Lambdas
Function Object with Attributes
Function Object with a Function Pointer
std::bind()
Lambda Expressions
7. Policy Objects
Function Pointer for Callback
Function Object for Callback
Lambda for Callback
Member Policy Objects
Examples From the Standard Library
8. The Observer Pattern
The Observer Design Pattern
Implementations
A Member Function Object
std::function class
9. Resource Allocation Designs
Resource Allocating Classes
Moving vs Copying
R-value References
10. Smart Pointers
Smart Pointer Implementation
std::auto_ptr
std::unique_ptr
std::shared_ptr and std::weak_ptr
Smart Pointers for Any Resource
Smart Pointers and Inheritance
11. Streams, Files and Serialization
The Standard Streams Library
The Filesystem Library
Boost Serialization Library
12. Time
The C Library Time Functions
The std::chrono namespace
std::chrono::duration
std::chrono::time_point
Clocks
Displaying Time
Boost Timers Library
13. Random Numbers
The C Library Random Functions
Random Engines
Random Seeding
std::random_device
Distributions
Creating a Generator
14. Regular Expressions
Regular Expressions Basics
std::regex and std::wregex
Regular Expressions Versions
Validate a String
Search a String
Replace Substrings
15. Threads
Thread Basics
std::thread Class
Synchronization Classes
Standard Atomic Library
Hur påverkar COVID-19 denna utbildning?
Vi på utbildning.se är övertygade om att kunskap driver människor och organisationer framåt. Det gör även de arrangörer vi samarbetar med.
Många utbildningar ställs exempelvis om från klassrums- till distansutbildning.
För att ta reda på om en utbildning påverkas med anledning av COVID-19, kontakta gärna arrangören.
Intresseanmälan
Informator

Utbildningsutbud
Informator är utbildningsföretaget som stärker din konkurrenskraft genom att underhålla, uppdatera och tillföra relevant kunskap inom IT och management där och när du behöver det. Vi har vuxit tillsammans med svensk mjukvaruindustris ledande företag och utbildat utvecklare, tekniker, projektledare och chefer sedan...
Kontaktuppgifter
Informator
För att få mer information om utbildningen Applied Modern C++ från Informator, fyll i dina uppgifter: