Beskrivelse
Thought you knew C++? Think again! The C++11 standard is a huge leap forward in the language and STL. Largely inspired by Boost, the C++11 standard introduces support for lambdas, multithreading, vastly improved object construction mechanisms, and much more beside. This course takes a deep and detailed look at all the new features on offer in C++11, along with the incremental additional changes in C++14, C++17 and C++20.
>> Available in Danish <<
Participant Profile
This course is for developers with at least 3 - 6 month C++ programming experience.
Outcome
Working with C++11 smart pointers
Functional programming in C++11
Defining and using lambda expressions
Using C++11 container classes
Implementing code applications in C++11
Using miscellaneous C++ language features
Whats new in C++ 14, C++17 and C++20
Course Content
General Language Enhancements in C++11
Auto variables
Using auto in template definitions
Using decltype
New return syntax
Range-based for loops
Making your own classes iterable
Generalised constant expressions
Strongly-typed enums
Null pointers
Explicit overrides
Static asserts
Additional Language Features in C++11
Lvalues, rvalues, and rrvalues
Movability
Reference binding ...%%%
... rules
Support for movability in the STL
Improved initialization syntax
Inheriting and delegating constructors
Regular expressions
Date and time
Chrono
Explicit conversions
Variadic templates
Miscellaneous New Language Features in C++14
Function return type deduction
Alternate type deduction in declarations
Relaxed constexpr restrictions
Variable templates
Aggregate member initialization
Standard user-defined literals
Smart Pointers
Recap of smart pointer concepts
Shared pointers
Weak pointers
Unique pointers
Techniques and patterns
Introduction to Functional Programming
Overview of functional programming
Using std bind to bind parameters
Using placeholders with for_each()
Passing by reference
Using std function to represent free functions and member functions
Lambda Expressions
Overview of lambda expressions
Lambda syntax in C++11
Defining lambdas with arguments and a return value
Variable capture
Using lambdas with the STL
Performance considerations
Generic lambdas and lambda capture expressions in C++14
C++11 and C++14 Containers
Overview of new STL features
Using std array and forward_list
Using unordered containers
Understanding hashing
Defining a custom hash function
Understanding buckets
In-place construction
Heterogeneous lookup in associative containers in C++ 14
C++11 and C++14 Multithreading
Creating simple threads using std thread
Using lambda expressions with threading
Accessing the current thread
Using mutexes
Lock management and lock strategies
Atomic variables
Condition variables
Calling functions asynchronously
Working with future values
Shared mutexes and locking in C++14
Whats New in C++17
Nested namespaces
Attributes
Fold expressions in variadic templates
Aggregate initialization with inheritance
Lambda enhancements
Template class type deduction
Inline variables
Library enhancements
Parallel algorithms
Miscellaneous enhancements and additions
Whats New in C++20
Concepts
Ranges
Lambda improvements
The spaceship operator
Atomic smart pointers
Concurrency and synchronization improvements
Co-routines; Modules
The consteval and constinit keywords
Miscellaneous enhancements and additions
Instructor Andy is a freelance instructor and consultant based in the UK, with more than 30 years experience in the industry across a wide range of technologies and platforms. Andy began his professional career in C and migrated through C++, Java, .NET and other languages and toolsets as the years passed by. Andy is currently actively involved in contemporary systems development techniques including microservice architecture, cloud-based systems, and containerisation.
Troede du, at du kendte C++?
Tro om igen! C++11-standarden er et kæmpestort skridt frem for programmeringssproget og STL.
Med generel inspiration fra Boost understøtter C++11-standarden lamda-udtryk, multithreading, gennemgribende forbedret objektkonstruktionsmekanismer og meget mere.
Dette kursus går i dybden med alle de nye funktioner i C++11 samt de gradvise yderligere ændringer i C++14, C++17 og C++ 20.
Deltagerprofil Kurset henvender sig til udviklere med mindst 3-6 måneders erfaring med C++-programmering.
Bliv opdateret, og få et detaljeret indblik i alle de nye funktioner, der tilbydes i C++ 11. På kurset gennemgås også de løbende ændringer, der sker på C++ 14, C++ 17 og C++20. Undervisningen foregår på engelsk.
Working with C++11 smart pointers
Functional programming in C++11
Defining and using lambda expressions
Using C++11 container classes
Implementing code applications in C++11
Using miscellaneous C++ language features
Whats new in C++ 14, C++17, and C++20
Indhold General Language Enhancements in C++11
Auto variables
Using auto in template definitions
Using decltype
New return syntax
Range-based for loops
Making your own classes iterable
Generalised constant expressions
Strongly-typed enums
Null pointers
Explicit overrides
Static asserts
Additional Language Features in C++11
Lvalues, rvalues, and rrvalues
Movability
Reference binding rules
Support for movability in the STL
Improved initialization syntax
Inheriting and delegating constructors
Regular expressions
Date and time
Chrono
Explicit conversions
Variadic templates
Miscellaneous New Language Features in C++14
Function return type deduction
Alternate type deduction in declarations
Relaxed constexpr restrictions
Variable templates
Aggregate member initialization
Standard user-defined literals
Smart Pointers
Recap of smart pointer concepts
Shared pointers
Weak pointers
Unique pointers
Techniques and patterns
Introduction to Functional Programming
Overview of functional programming
Using std bind to bind parameters
Using placeholders with for_each()
Passing by reference
Using std function to represent free functions and member functions
Lambda Expressions
Overview of lambda expressions
Lambda syntax in C++11
Defining lambdas with arguments and a return value
Variable capture
Using lambdas with the STL
Performance considerations
Generic lambdas and lambda capture expressions in C++14
C++11 and C++14 Containers
Overview of new STL features
Using std array and forward_list
Using unordered containers
Understanding hashing
Defining a custom hash function
Understanding buckets
In-place construction
Heterogeneous lookup in associative containers in C++ 14
C++11 and C++14 Multithreading
Creating simple threads using std thread
Using lambda expressions with threading
Accessing the current thread
Using mutexes
Lock management and lock strategies
Atomic variables
Condition variables
Calling functions asynchronously
Working with future values
Shared mutexes and locking in C++14
Whats New in C++17
Nested namespaces
Attributes
Fold expressions in variadic templates
Aggregate initialization with inheritance
Lambda enhancements
Template class type deduction
Inline variables
Library enhancements
Parallel algorithms
Miscellaneous enhancements and additions
Whats new in C++20
Concepts
Ranges
Lambda improvements
The spaceship operator
Atomic smart pointers
Concurrency and synchronization improvements
Co-routines
Modules
The consteval and constinit keywords
Miscellaneous enhancements and additions