Function and Class Design with C++2x 2026

Function and Class Design with C++2x is a two-day onsite training course with programming examples, taught by Jeff Garland. It is offered at the Gaylord Rockies from 09:00 to 17:00 Aurora time (MDT) on Saturday and Sunday, September 19th and 20th, 2026 (immediately following the conference). Lunch is included.

Register HereSee Other Offerings

Course Description

C++20 to C++26 brings a massive number of new language and library features – which can feel overwhelming to developers coming from older standards. This tutorial focuses on introducing those tools and how to use them in construction of functions and classes — which are the foundation of C++ programs. The tutorial is based, first and foremost, on the presenters experience building production large non-stop distributed systems with C++2x and also his work on C++ libraries, including work on the C++ standard library.

Participants will leave with a base knowledge of applying C++2x features to their designs and projects. In particular, concepts, reflection, contracts, modules, ranges and range algorithms, aggregate types, advanced error handling, and other features.

Prerequisites

Participants should bring a working knowledge of writing C++ programs. We’ll assume some basic knowledge of C++11, lambdas, and smart pointers. Attendees should have a laptop to participate in exercises.

Course Topics

On day one we’ll focus on features with wide deployment which can be utilized in production systems today. The tutorial is divided into 5 primary sections and includes exercises to try several of the features.
– Part 0: Overview & Goals
– Part 1: C++2x Essentials
– Part 2: Concepts
– Part 3: Function Design in C++2x
– Part 4: C++2x Essentials – part 2
– Part 5: Class Design
– Part 6: Wrap-up and discussion
On day two we’ll start with an overall approach to designing large projects: Library First Design — discussing best practices for building libraries and how that helps architecture. And then move on to reflection, contracts, and modules. Returning back to how those features impact function and class design.
– Part 0: Library First Design and Practices
– Part 1: Reflection
– Part 2: Contracts
– Part 3: Modules
– Part 4: C++2x Essentials – part3
– Part 5: Function & Class Design II
– Part 6: Wrap-up and discussion

Course Instructor

Jeff Garland

Jeff Garland has over 40 years of experience designing and building large-scale, distributed software systems in mission-critical environments across diverse domains, including telecommunications, industrial process control, satellite ground control, IP-based communications, and financial systems.

An active member of the C++ community since 2000, Jeff has served in a variety of leadership roles within Boost. He developed the Boost.datetime library and became a co-author of the C++11 chrono proposals. Since 2018, he has been a regular participant in the ISO C++ committee, currently serving as Vice-Convenor, Vice-Chair of the Library Working Group, and as a member of the Directions Group. In 2024, he co-founded the Beman Project to improve the development and accessibility of proposed C++ standard libraries.

Jeff holds a Master’s degree in Computer Science from Arizona State University and a Bachelor of Science in Systems Engineering from the University of Arizona, and is Principal Consultant at CrystalClear Software, Inc.

Register HereSee Other Offerings