CppCon 2026

Introduction
I had the opportunity to travel to Denver, Colorado, to attend CppCon 2026, my first CppCon and my first visit to Colorado. CppCon is an annual conference focused on the C++ programming language and brings together C++ developers, library authors, educators, members of the C++ standards community, and other experts from across the industry. The 2026 conference was held at the Gaylord Rockies Resort & Convention Center in Denver, Colorado, with the main conference taking place from September 14-18. In addition to the main conference, I attended two days of pre-conference training on Saturday, September 12 and Sunday, September 13. I selected C++ Best Practices, taught by Jason Turner, a C++ developer, trainer, author, and creator of the C++ Weekly With Jason Turner YouTube channel. The course focused on writing modern C++ that is maintainable, performant, and safe by default.
Traveling to Denver
My trip began on Friday, September 11, 2026. This was my first time visiting Denver and Colorado. My first flight departed at approximately 4:00 p.m. for Toronto, with a flight duration of 1 hour and 7 minutes. From Toronto Pearson International Airport, I was scheduled to connect to a 6:40 p.m. flight to Denver, which had a flight duration of 3 hours and 37 minutes. My first flight was delayed because the aircraft itself had been delayed on its previous trip. I already had a fairly tight connection in Toronto, so the additional delay reduced the amount of time available to make my connecting flight.
To make matters more complicated, my connection required me to get across Pearson to Terminal 1. Fortunately, the flight attendants knew that several passengers had tight connections and asked everyone else to remain seated so that those passengers could deplane first. Since we were still in Canada, the other passengers actually listened and stayed seated, allowing us to get off the plane quickly.
Even with priority deboarding, I still had a long way to go. Terminal 1 was approximately an 11-minute walk away, and because I was connecting to a U.S. flight, I still needed to clear security and U.S. customs before getting to my gate. I eventually made it to U.S. customs, only to find a very long line. While I was still waiting to clear customs, boarding time had already started for my flight to Denver.
At that point, I was convinced that I was going to miss the flight and had started looking up what I would need to do to rebook. Then I received a text message that my Denver flight had been delayed by 45 minutes. The extra time gave me the opportunity I needed to clear customs and make it to my gate. When I finally arrived, I found out that the flight had been delayed by another 45 minutes.
That meant more waiting at the gate, but after thinking I was going to miss the flight entirely, I was more than happy to wait. Eventually, we departed Toronto and continued on to Denver. After arriving in Colorado, I took a shuttle to my hotel, checked in, and got situated for the night. It had been a much more eventful travel day than I expected, but I had made it to Denver successfully.
Accommodations
I stayed at the Residence Inn by Marriott Denver Airport/Convention Center, which was about a six-minute drive or roughly a 40-minute walk from the Gaylord Rockies. The Residence Inn was less expensive than staying at the Gaylord Rockies, while still providing a comfortable and spacious room. My room also included a kitchen, which was a nice feature to have during the stay.
The hotel was clean and well maintained. Housekeeping came every other day to clean the room and provide fresh towels, which was more than sufficient for my stay. The complimentary breakfast was satisfactory and offered a good variety of options, including eggs, sausage, bacon, bagels, cereal, oatmeal, and waffles. There was also a selection of juices, coffee, and tea. The breakfast was filling, and I was generally satisfied after eating each morning.
The hotel also offered several amenities, including laundry facilities, an indoor pool, a basketball court, a gym, and an outdoor fire pit area. I did not use the gym during my stay, but it appeared to have enough equipment for a basic workout. From what I remember, it included a treadmill, a bench, and a selection of dumbbells, although I did not check how heavy the dumbbells went.
I also did not use the indoor pool and rarely saw anyone else using it, although I was usually away from the hotel during the day. The outdoor fire pit area seemed to be more popular in the evenings, and I saw several people using it at night. I also enjoyed eating breakfast outside in that area on a few mornings.
Another convenient feature was the hotel’s complimentary shuttle service to and from Denver International Airport. This made arriving and departing much easier and meant I did not have to rely on Uber.
Overall, staying at the Residence Inn was a pleasant experience. It provided a good balance of price, comfort, amenities, and proximity to the conference venue. Although it was not directly beside the Gaylord Rockies, the short drive was manageable, and the lower cost and spacious room made it a worthwhile option.
Venue
As mentioned earlier, CppCon 2026 took place at the Gaylord Rockies Resort & Convention Center. The Gaylord Rockies is a massive and impressive venue with a wide range of amenities. Some facts I found about the resort include:
- More than 1,500 guest rooms and over 100 suites
- A three-acre Arapahoe Springs Water Park with indoor and outdoor pools, a lazy river, and waterslides
- Several on-site restaurants and bars
- A spa and 24-hour fitness center
- Roughly 500,000 square feet of convention and event space
There are also several restaurants throughout the resort, and the food I tried was generally good, although quite expensive. The property also has a Starbucks, gift shop, and even a golf simulator.
The Gaylord Rockies hosts many conferences, and CppCon was not the only event taking place during my stay. One that caught my attention was MOMCON, which I had never heard of before. After a quick Google search, I learned that it is an annual three-day conference organized by The MomCo that focuses on supporting mothers in areas such as faith, marriage, leadership, and parenting.
Training & Conference
Before the main conference, I took part in Jason Turner’s C++ Best Practices training course, which focused on writing modern C++ that is maintainable, performant, and safe by default. I have to say that Jason Turner is an exceptional teacher who does a great job of breaking down and explaining complex C++ topics.
Another benefit of taking the class was learning alongside developers from different industries and backgrounds. Many of the students used C++ in areas that I was unfamiliar with, which led to interesting discussions and provided additional opportunities to learn beyond the course material itself.
Jason Turner also runs the YouTube channel C++ Weekly With Jason Turner, with the goal of “Making C++ Fun and Accessible.” I particularly appreciate that the videos are generally short and focused while still being very informative.
There were many vendors at CppCon, ranging from companies that make extensive use of C++ to companies building developer tools. A noticeable number were high-frequency and quantitative trading firms. Some of the companies represented included Citadel, Optiver, Hudson River Trading, Squarepoint, Qube Research & Technologies (QRT), Chicago Trading Company, Susquehanna, Tower Research Capital, and many others.
There was also plenty of conference swag. Companies were giving away T-shirts, tote bags, cups, keychains, small backpacks, playing cards, and various other items. One of the personal highlights of the conference was getting the opportunity to take a picture with Bjarne Stroustrup, the creator of C++.
The main conference ran for five days, with multiple talks taking place during each time block. I attended a talk during almost every block, and the presenters did a great job of communicating their topics. Even when a talk covered an area I was already somewhat familiar with, I usually came away with something new to think about.
Some of my favourite talks were:
-
Back to Basics: Move Semantics - Ruslan Arutyunyan
As someone who is still relatively new to C++, I really enjoyed this introduction to move semantics, value categories, rvalue references, and perfect forwarding. One useful part of the talk was developing a better intuition for lvalues and rvalues. A simple mental model is that an lvalue generally refers to an identifiable object with a persistent location, while an rvalue usually represents a temporary value or a value that can be moved from.
The actual C++ value-category system is more nuanced, with expressions classified as lvalues, xvalues, or prvalues. The talk also clarified what
std::moveactually does. Despite its name,std::movedoes not move any data itself. It performs a cast that turns its argument into an xvalue, allowing move constructors or move-assignment operators to be selected when appropriate. Whether anything is actually moved depends on what operation is subsequently performed.Multiple examples throughout the presentation helped demonstrate when moves occur, when copies still happen, and how forwarding fits into the picture.
-
Language Designers Panel - Bjarne Stroustrup, Guido van Rossum, and Mads Torgersen
This was one of the main events I had been looking forward to. The panel brought together Bjarne Stroustrup, creator of C++; Guido van Rossum, creator of Python; and Mads Torgersen, lead designer of C#.
The discussion was moderated by Emma Tracey, founder of CultRepo and producer of C++: The Documentary and Python: The Documentary.
This panel was especially interesting to me because Python was the first programming language I learned, I studied and used C# in school, and I now primarily work with C++. It was fascinating to hear the three designers discuss their backgrounds, relationships between the languages, design decisions, criticism, community feedback, and the challenges of evolving languages that are used by millions of developers.
There were also some lighter moments, including rapid-fire questions that required short answers from each of the designers. Seeing the creators and designers of three languages that have played a role in my own programming journey sitting on the same stage was definitely one of the highlights of CppCon for me.
-
Back to Basics: Memory Alignment - Sarthak Sehgal
This talk provided a concise walkthrough of memory alignment and how it affects both correctness and performance. It covered how CPUs access memory, why alignment and cache-line boundaries matter, and how compilers lay out data structures using alignment requirements and padding.
Topics included the CPU memory hierarchy, differences in access latency between levels of the hierarchy, temporal and spatial locality, cache lines, aligned and misaligned memory accesses, and struct layout and padding.
I had been studying several of these topics before attending CppCon, particularly cache behaviour and data layout, so it was useful to revisit them in a structured presentation and reinforce my understanding.
-
Type Punning: The Joke Is on You, Pun Intended. Fixing UB of reinterpret_cast! - Lieven De Cock
One of the main takeaways from this talk was that type punning using
reinterpret_castcan easily result in undefined behaviour. Problems can arise from alignment requirements, strict-aliasing rules, object lifetime, and other rules governing how C++ objects may be accessed. Code that appears to work today may behave differently after changing compilers or optimization levels because undefined behaviour gives the compiler very few guarantees about the program’s behaviour.The talk specifically focused on alignment, strict aliasing, and object lifetime as major sources of problems. The presentation also discussed techniques for detecting these problems. Compiler warnings, assertions, constant evaluation, and sanitizers such as UBSan can expose certain classes of undefined behaviour. AddressSanitizer is useful for detecting memory errors such as out-of-bounds accesses and use-after-free, while other sanitizers are needed for different classes of problems.
More importantly, the talk covered safer alternatives to blindly using
reinterpret_cast, includingstd::memcpy,std::memmove,std::bit_cast, andstd::start_lifetime_as, depending on the situation. These tools allow programmers to work with object representations while respecting C++’s alignment, aliasing, and lifetime rules.I found this talk particularly useful because low-level C++ often involves interpreting network packets and other raw byte sequences, where it can be tempting to simply cast a pointer to the structure you want. Understanding when that is valid and when it introduces undefined behaviour is important when writing performant systems code.
-
What 25 Days of Optimisations Taught Me About Compilers - Matt Godbolt
This was another talk I had been looking forward to. Since I started learning C++, Compiler Explorer has been one of the tools I constantly return to when trying to understand what the compiler does with my code.
I use it so frequently that I now run Compiler Explorer locally and created a VS Code shortcut that opens the current source file directly in my local instance (shameless plug).
Matt Godbolt’s talk looked back at lessons from his Advent of Compiler Optimisations 2025, a 25-day project in which he published a different compiler optimization example every day. The series explored both low-level, architecture-specific optimizations and higher-level transformations, primarily using x86-64 while also touching on ARM.
During the presentation, Matt revisited several examples from the series and explained what they revealed about modern compilers. What I found particularly interesting was seeing just how much work a compiler can perform to transform relatively ordinary C++ into highly optimized machine code and how small changes to the source can sometimes enable or prevent those optimizations.
The talk reinforced one of the reasons I find Compiler Explorer so useful: it provides a direct way to connect the C++ we write with the machine instructions that ultimately execute on the CPU.
Conclusion
Overall, attending CppCon 2026 was a great experience. Between the pre-conference training, technical talks, conversations with other C++ developers, and the opportunity to learn from people working across many different areas of the industry, I came away from the conference with plenty of new ideas and topics that I want to explore further.
It was also valuable to spend several days surrounded by people who use C++ across many different industries and problem domains. The conference reinforced how much there still is to learn about the language and systems programming in general, and I am looking forward to continuing that learning over the next year.
I am already looking forward to attending CppCon again. CppCon 2027 has been announced for September 18-24, 2027, so the dates are already on my radar. Hopefully, I will be back next year for another week of C++, learning, and connecting with the community.




