There is still time to register for any of our excellent online C++ training / workshop sessions - part of C++Online 2024

All Workshop Registrations include access to the three day main conference (with 20+ online C++ talk sessions!)

If you've already bought a main conference registration and would like to upgrade to a workshop package, please email us: info@cpponline.uk

Register Now For Any C++ Workshop Session: https://cpponline.uk/registration/

C++ Workshop Sessions:

SAFER C++ WITH MISRA-C++-2023 - Peter Sommerlad - Wedneday 28th February 0800-1600 UTC

Join an online workshop tailored for C++ programmers seeking to enhance code safety, led by Peter Sommerlad. Delve into language complexities, tackle backward compatibility challenges, and address design deficiencies. Learn to craft secure code in various scenarios, navigating undefined behavior and portability issues. Benefit from expert guidance through established guidelines, programming pitfalls, and strategies for reconciling guideline adherence with system goals. Discover the practical use of dedicated libraries to mitigate vulnerability concerns. Equip yourself with hands-on experience and concrete design guidance to fortify your C++ projects for increased safety and reduced risk.

Session Overview and Interview with Peter Sommerlad:

Workshop Outline:

  • Properties of Safe and Secure Code
  • Origins and Evolution of Guidelines
  • From "Dos and Don'ts" to Design
  • Conscious Class Design
  • Value Values
  • Flavors of Manager Types
  • Strong Types (optional)
  • Integer types without UB and overhead (optional)
  • Understand Relationship Risks
  • Putting Plain Pointers away
  • AMA (ask me anything)

C++ CONCEPTS: CONSTRAINING C++ TEMPLATES IN C++20 AND BEFORE - Mateusz Pusz - 28th February 0800-1600

Explore the highly anticipated C++20 feature, C++ Concepts, in an insightful online workshop led by instructor Mateusz Pusz. This significant addition improves template interfaces by explicitly stating the compile-time contract between users and code architects, reducing compilation errors and enhancing user-friendliness. The session will delve into C++20 Concepts, drawing comparisons to Concepts TS, and provide practical ways to integrate functionality into current production C++ projects limited to "legacy" C++11 features.

Session Overview and Interview with Mateusz Pusz:

Prerequisites for participation:

  1. Recent working experience with C++ templates.
  2. A laptop with a web browser and internet access.

Workshop Outline:

  1. C++ Templates in a Nutshell
    • Template definition
    • Template parameters
    • Template specialization
  2. Introduction to C++20 Concepts
    • Motivation
    • Concept Definition
    • Constraining Types with Concepts
    • requires Clause
    • requires Expression
    • Concept Categories
  3. C++ Standard Library Concepts
    • Constraint Normalization
  4. Concepts TS
    • Major Differences from C++20 Concepts
  5. Concepts Emulation in C++17
    • SFINAE
    • std::enable_if
    • std::void_t
    • Type Traits
  6. Constraining Class Template Parameters

Join Mateusz Pusz's workshop to gain a comprehensive understanding of C++20 Concepts and learn practical applications for current production projects with "legacy" C++11 features.


A DAY WITH COROUTINES - Andreas Fertig - March 4th 2024 - 09:00 - 17:00 UTC

Embark on an exploration of C++20 coroutines in a dynamic online workshop led by instructor Andreas Fertig. Delve into the exciting world of resumable functions, offering a different programming style, particularly beneficial for tasks like implementing parsers. This class introduces cooperative multitasking applications, a contrast to preemptive multitasking, providing insights into controlling memory in various domains. The course is hands-on, blending theory with demos and exercises, guiding you from the basics to customizing coroutines and efficiently managing memory. By the end, you'll be equipped to create your own efficient coroutines, steering clear of common pitfalls.

Session Overview and Interview with Andreas Fertig:

Workshop Outline:

  1. What are coroutines
  2. Why coroutines
  3. Functions vs. coroutines
  4. Coroutine examples
  5. Coroutine restrictions
  6. Various customization points
  7. Overloading operator new for your promise-type
  8. A custom allocator for a promise-type
  9. Signals for when to use coroutine
  10. Exceptions and coroutines
  11. Efficient coroutine data flows
  12. C++23 std::generator
  13. Traps for coroutines

Join Andreas Fertig's engaging workshop to gain practical insights, hands-on experience, and the skills to navigate the intricacies of C++20 coroutines efficiently.


CONCURRENCY IN MODERN C++ - Rainer Grimm - March 14th 2024 - 0900-1700 UTC

Embark on a comprehensive exploration of C++ multithreading in this instructive online workshop led by Rainer Grimm. The course covers the multithreading facilities in C++, starting with the foundation in C++11, advancing to the parallel STL in C++17, and concluding with the latest concurrency features introduced in C++20.

Session Overview and Interview with Rainer Grimm:

Workshop Outline:

  1. Multithreading Basics
    • Threads
    • Shared Data
    • Mutexes and Locks
    • Thread-safe Initialization
    • Thread-Local Data
  2. Advanced Multithreading Concepts
    • Condition Variables
    • Tasks (Promises and Futures)
  3. Parallel Algorithms of the Standard Template Library (C++17)
    • Execution Policies
    • Algorithms
    • The New Algorithms
  4. C++20 Concurrency Features
    • std::jthread
    • Atomic Smart Pointers
    • Latches and Barriers
    • Semaphores

Register Now for any of these amazing C++ Workshop sessions and receive complimentary access to the 3 day main conference, and all benefits of the standard main conference registration: https://cpponline.uk/registration/

C++Online runs from the 29th of February - 2nd March 2024

See You Online!