T1233

Ladda ner som PDF

Applied Modern C++

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.

Audience

Developers with an extensive working knowledge of C++.

Prior knowledge

Practical experience equivalent to course T104 C++11 - Advanced Programming.

Informator Training Cloud

Our training portal supports your development throughout the training. The portal saves you time and is designed to give you a more effective learning experience - leading to better results and greater knowledge enforcement after the course. Read more >

As an introduction there is a through presentation of the new language features in C++11. 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.

Objectives:

  • A good knowledge of what is new in C++11, both in the language and in the Standard Library.
  • A full understanding of Policy Based Design using templates and policy objects.
  • Understanding the Observer Pattern, also called signalling, events, etc.
  • Understanding and using idioms for resource allocation and smart pointers.
  • Knowledge and experience on some of the Boost library classes and upcoming TR2 classes.

Course Outline:

1. Introduction

2. New Features of C++11

  • auto and decltype
  • nullptr
  • Range Based for
  • override and final
  • Unicode Support
  • default and delete
  • explicit Converters
  • static_assert
  • enum class
  • long long
  • Exception declarations

3. Uniform Initialization

  • In the Class Declaration
  • Inter-constructor Calls
  • Inherited Constructors
  • Curly Bracket Initialization

4. Collections and Algorithms

As an introduction there is a through presentation of the new language features in C++11. 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.

Objectives:

  • A good knowledge of what is new in C++11, both in the language and in the Standard Library.
  • A full understanding of Policy Based Design using templates and policy objects.
  • Understanding the Observer Pattern, also called signalling, events, etc.
  • Understanding and using idioms for resource allocation and smart pointers.
  • Knowledge and experience on some of the Boost library classes and upcoming TR2 classes.

Course Outline:

1. Introduction

2. New Features of C++11

  • auto and decltype
  • nullptr
  • Range Based for
  • override and final
  • Unicode Support
  • default and delete
  • explicit Converters
  • static_assert
  • enum class
  • long long
  • Exception declarations

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 Collections

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
  • Boost Filesystem Library (in TR2)
  • 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

 

"Mycket kunnig och mycket pedagogisk lärare." 
/ en nöjd deltagare 21/9-2015
Citat från tidigare deltagare
"Kursen är mycket bra organiserad och lärorik, jag kommer att rekommendera den till mina kollegor." 
/ en nöjd deltagare 11/10-2014
Citat från tidigare deltagare
   
Kurs-ID: T1233
Längd: 4 dagar
Pris exkl moms: 31 450 kr

Frågor om kursen?

Har du frågor om kursens innehåll, leveransdatum/ort eller behöver en företagsanpassad variant? Fyll i formuläret nedan!


Kan betalas med:
TRAINING CARD

Ort och datum

Stockholm
13 feb-16 feb
Boka nu!
20 mar-23 mar
Boka nu!
15 maj-18 maj
Boka nu!
Göteborg
13 feb-16 feb R
Boka nu!
20 mar-23 mar R
Boka nu!
15 maj-18 maj R
Boka nu!
Malmö
13 feb-16 feb R
Boka nu!
20 mar-23 mar R
Boka nu!
15 maj-18 maj R
Boka nu!
Cloud Access
i Läs mer

Delta på kursen från ditt hem, jobb eller annan plats.

13 feb-16 feb
Boka nu!
20 mar-23 mar
Boka nu!
15 maj-18 maj
Boka nu!

Tipsa