Loading…
CppNorth 2025, The Canadian C++ Conference
July 20-23, 2025 • Toronto, Canada
Type: Design clear filter
Monday, July 21
 

14:30 EDT

Unveiling Type Erasure in C++: From std::function to std::any
Monday July 21, 2025 14:30 - 15:30 EDT
Type erasure is a powerful concept in C++ that allows us to work with heterogeneous types while hiding their concrete details behind a generic interface. In this talk, we will explore how the C++ Standard Library employs type erasure in constructs like std::function, std::shared_ptr, and std::any to provide flexible and efficient solutions for managing types at runtime. Further, we will unveil the hidden cost of using these constructs.
We will start by building our own version of std::function, which will help demystify how it can store and call any callable object, regardless of its type. Then, we'll look at how std::shared_ptr uses type erasure to maintain type safety via dynamic dispatch of the deleter. Finally, we will delve into std::any, some times claimed the modern void*, and explore a different technique of type erasure.
Speakers
avatar for Sarthak Sehgal

Sarthak Sehgal

Sarthak Sehgal is an early-career C++ Software Engineer at a high frequency options market making firm. His interests lie in low level programming, performance optimization, and finance. Blog: sartech.substack.com... Read More →
Monday July 21, 2025 14:30 - 15:30 EDT
TBA-B

16:00 EDT

Should I Check for Null Here?
Monday July 21, 2025 16:00 - 17:00 EDT
Two years ago a junior developer, doing her very first "introductory" task, asked the seemingly simple question "should I check for null here?".

This, of course, resulted in a multi page response from me, starting with:

"It depends"

and ending with:

"And that's the short version. For the long version, see my hour/day presentation on whether to check for null (which is actually not about null at all, but Contracts...)"

Aha! Two years later...

This is a talk about Error Handling - but in particular those errors you didn't expect - bugs.

And yes, this is really a talk about Contracts, in particular C++26 (and beyond) Contracts. What are they, What AREN'T they, how to use them and WHY.
Speakers
avatar for Tony Van Eerd

Tony Van Eerd

Stunt-double for C++ Expert, Christie Digital
Tony has been coding for well over 25 years, and hopefully coding well for most of that. Previously at Inscriber, Adobe, and BlackBerry, he now enables painting with light at Christie Digital. He is on the C++ Committee. He is a Ninja and a Jedi.
Monday July 21, 2025 16:00 - 17:00 EDT
TBA-A
 
Tuesday, July 22
 

11:00 EDT

Gotta Cache 'Em All: Optimize Your C++ Code By Utilizing Your Cache!
Tuesday July 22, 2025 11:00 - 12:00 EDT
Get ready for a crazy fun & informative talk! Boost your C++ code's performance by utilizing the full power of your computer’s built-in cache. In this talk, we'll delve into the basics of caches, spatial and temporal cache locality, and practical techniques for optimizing cache access. We'll also explore cache prefetching, branch prediction, and false sharing, providing examples modelled on real-world production code and performance benchmarks to drive home each point. By the end of this talk, you'll be equipped with the knowledge and tools to better optimize your code for cross-platform performance gains.
Speakers
avatar for Michelle D'Souza

Michelle D'Souza

Michelle Fae D’Souza is a Software Engineer at Bloomberg, where she develops C++ code for the company’s order-trade entry and modification (OTE API) solution, which streamlines trading activity for many firms in the financial world. She is an active member of Bloomberg's C++ Guild... Read More →
Tuesday July 22, 2025 11:00 - 12:00 EDT
TBA-A

11:00 EDT

On coding guidelines, class invariants, and special member functions
Tuesday July 22, 2025 11:00 - 12:00 EDT
This talk explores five widely taught C++ coding guidelines and the subtle but profound way that the special member functions interact with class invariants, all with the ultimate goal of learning how to write better code.
Speakers
avatar for Olivia Wasalski

Olivia Wasalski

Olivia Wasalski is a Software Development Team Lead at Safe Software Inc., specializing in computational geometry. She’s passionate about optimizing algorithms for various data shapes, minimizing floating point errors, bit-packing, and developer education.
Tuesday July 22, 2025 11:00 - 12:00 EDT
TBA-B

13:00 EDT

Serial and parallel pipelines in modern C++
Tuesday July 22, 2025 13:00 - 14:00 EDT
A pipeline is a chain of processing elements such as functions, threads etc., arranged so that the output of each element is the input of the next. We often encounter this pattern in practice. C++ also allows us to write in this way, e.g. using the `std::ranges` library with its characteristic overloaded pipe `operator |`. But modern C++ enables much more and this will be discussed in this talk. First, we'll show how to implement a custom pipeline framework that employs `std::expected`, available since C++23. Secondly, we will show pipelines in the serial version, where the functions communicate the results of their calculations, as well as in the parallel version, in which at least one thread operates on each link. In the last case we will need synchronized queues – and here we will also show how `std::expected` can be used again to create a flexible interface. Everyone is welcome!
Speakers
avatar for Boguslaw Cyganek

Boguslaw Cyganek

Researcher, AGH University of Krakow
Boguslaw Cyganek is a researcher and lecturer at the Department of Electronics, AGH University of Krakow, Poland. He has worked as a software engineer for a number of companies such as Nisus Writer USA, Compression Techniques USA, Manta Corp. USA, Visual Atoms UK, Wroclaw University... Read More →
Tuesday July 22, 2025 13:00 - 14:00 EDT
TBA-B

14:30 EDT

Heaps Don't Lie - Guidelines for Memory Allocation in C++
Tuesday July 22, 2025 14:30 - 15:30 EDT
Dynamic memory allocations are ever-present in most programs. A simple look at the RAM usage of the browser you are currently using to read this abstract will likely tell you something.
But what of the runtime performance cost? How much (or little) should you be concerned about it and keep it in mind while implementing new features or designing software?

In this talk, we will present a set of about 10 guidelines to keep in mind when dealing with dynamic memory allocation and mitigate its potential performance impact on execution speed. From quite simple to somewhat advanced, everyone should be able to walk away from this talk having learnt something.
Speakers
avatar for Mathieu Ropert

Mathieu Ropert

French C++ expert with a passion for game development and performance. Decided to upgrade his compiler once and has been blogging about build systems ever since. Past speaker at CppCon, Meeting C++, ACCU and code::dive. Used to run the Paris C++ User Group. Currently lives in Swe... Read More →
Tuesday July 22, 2025 14:30 - 15:30 EDT
TBA-B

16:00 EDT

C++ Pitfalls and Sharp Edges to Avoid: Escaping Common Traps for Safer and more Resilient Code
Tuesday July 22, 2025 16:00 - 17:30 EDT
C++ is a powerful language, but with great power comes… plenty of pitfalls. Memory management quirks (even when using smart pointers), subtle undefined behaviors, and bug-prone code can silently introduce dangerous behaviors—only to surface at the worst possible moment in production. While static code analysis can catch some of these issues, it requires proper usage and adherence to warnings, and even then, it won’t catch everything. Many of these traps can lead to hard-to-debug issues, safety problems, and security vulnerabilities.
In this talk, we’ll explore some of the most notorious C++ pitfalls and sharp edges, discussing strategies to avoid them and write safer, more resilient code. We’ll walk through both design best practices and C++ coding guidelines to help you navigate the language’s trickier corners with confidence.
Speakers
avatar for Amir Kirsh

Amir Kirsh

Teacher, Academic College of Tel-Aviv-Yaffo
Amir Kirsh is a C++ lecturer at the Academic College of Tel-Aviv-Yaffo and Tel-Aviv University, previously the Chief Programmer at Comverse, after being CTO and VP R&D at a startup acquired by Comverse. He is also a co-organizer of the annual Core C++ conference and a member of the... Read More →
Tuesday July 22, 2025 16:00 - 17:30 EDT
TBA-B
 
Wednesday, July 23
 

11:00 EDT

Advanced Ranges: Writing Modular, Clean, and Efficient Code with Custom Views
Wednesday July 23, 2025 11:00 - 12:00 EDT
In this talk, we will explore the power of C++20 ranges and how custom views can simplify complex data transformations and improve code expressiveness. By creating reusable, lazy-evaluated views that operate on ranges, developers can avoid unnecessary intermediate containers and simplify complex data transformations. While standard views like std::views::transform and std::views::filter offer powerful tools for basic operations, custom views provide additional flexibility, allowing developers to create highly specialized transformations and handle more complex, state-dependent logic.  Through real-world examples, we will demonstrate how custom views enhance performance and maintainability, showcasing how they can streamline everything from basic filtering to complex, state-dependent transformations in modern C++ applications.


Speakers
avatar for Steve Sorkin

Steve Sorkin

Steve Sorkin has been at Bloomberg since 2019, where he is a software engineer working on Bloomberg’s Execution Management System (EMSX) as part of the Portfolio Trading Engineering team. He is enthusiastic about writing clean, scalable, and maintainable code for use in low latency... Read More →
Wednesday July 23, 2025 11:00 - 12:00 EDT
TBA-A
 
  • Filter By Date
  • Filter By Venue
  • Filter By Type
  • Timezone

Recently active attendees

Share Modal

Share this link via

Or copy link

Filter sessions
Apply filters to sessions.