pexels-yan-krukau-7693686

Workshop

C++ Software Design

Registration includes:

  • Attendance to the workshop with coffee break and cocktail lunch
  • Free attendance at the Using std::cpp 2025 event on March 19th, 20th and 21st for the first 20 registered

C++ Software Design

The design plays a much more central role in the success of a project than any feature could ever do.

Good software is not primarily about the proper use of any feature; rather, it is about solid architecture and design. Good software design can tolerate some bad implementation decisions, but bad software design cannot be saved by the heroic use of features (old or new) alone.

Good software design is essential for the success of a project and design patterns are the core ingredient for that. They have proven to be useful over several decades and knowledge about them is still very useful to design robust, decoupled systems. Modern C++, however, has profoundly changed the way we use C++, think about design and implement solutions.

This 1-day training explores modern C++ design and the modern forms of the classic Gang-of-Four (GoF) design patterns. It provides guidelines, idioms and best practices for sustainable and maintainable design, which enable programmers to create professional, high-quality code.

The Visitor Design Pattern
  • The classic GoF form
  • The modern form with std::variant
The Strategy Design Pattern
  • The classic GoF form
  • The modern dynamic form with std::function
  • The modern static form with templates
The External Polymorphism Design Pattern
  • Consequent separation of concerns
  • Non-Intrusive design
The Prototype Design Pattern
  • Virtual copying
The Bridge Design Pattern
  • Hiding implementation details
  • The Pimpl Idiom
  • The Fast Pimpl Idiom
The Type Erasure Design Pattern
  • A clever combination of patterns: External Polymorphism, Bridge and Prototype
  • Value semantics vs. Reference semantics

Trainer

Klaus Iglberger

Klaus Iglberger is a freelance C++ trainer and consultant. He is passionate talking about clean, safe and maintainable C++ and shares his expertise in popular C++ courses — from beginner to advanced — all around the world. He is the author of “C++ Software Design”, one of the organizers of the Munich C++ user group, and the (co-)organizer of the Back-to-Basics and Software Design tracks at CppCon.

Requirements

• Software Requirements

There is no requirement on the operating system. The programming exercises work on Windows, Linux or MacOS. For the programming exercises, participants must be provided with a C++17/20/23 compiler. Additionally, for Windows with Visual Studio CMake is required to generate the according VS solutions.

• Computer Equipment

Participants are either required to bring their own laptops with a modern C++ compiler installed

• Previous Knowledge

Participants are required to have at least two to three years of C++ experience. The course expects that all participants are familiar with the syntax of the language and have used inheritance and templates before.

Meeting point for C++ developers and as exchange forum of ideas and experiences around the use of the C++ programming language
Using std::cpp 2025 Event

C++ Software Design

Date:
March 18, 2025

Format:
Face to face

Type of course:
Workshop

Schedule:
9.00 – 18.30

Price:
360 €

Resolvemos tus dudas

Contacto

Ponte en contacto con nosotros para resolver cualquier duda que te pueda surgir respecto a nuestra formación

91 624 40 66 ó
91 624 40 69

¡Llámanos!

¿Necesitas ayuda?




    He leído y acepto la Política de Privacidad.

    Resolvemos tus dudas

    Contacto

    Ponte en contacto con nosotros para resolver cualquier duda que te pueda surgir respecto a nuestra formación

    91 624 40 66 ó
    91 624 40 69

    ¡Llámanos!

    ¿Necesitas ayuda?




      He leído y acepto la Política de Privacidad.

      Logo Fundación Universidad Carlos III
      Resumen de privacidad

      Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.