Please rotate your tablet to be horizontal.

You can dismiss this notice but please note that this experience has not been designed for mobile devices and so will be less than optimal

Looking for an interactive way to learn modern C++? Have a look at my in-person training at CppNorth 2023:

https://cppnorth.ca/workshop-fromc-tocpp.html

Meet me in Toronto!

#cpp #CppNorth #training

In today’s @CppNorth talk "Using Sender/Receiver to Implement Control Flow for Async Processing" (9 AM MDT), Steve Downey will explore how the components & connectors for C++26's Sender/Receiver framework are to fit together
#cpp #cpp26 #cplusplus #CppNorth
https://bloom.bg/3NQlKOn

We are excited to have Bill Hoffman speaking about CMake at the CppNorth conference. His talk covers the latest in C++20 modules in #CMake. For more information, visit: http://ow.ly/OcnF50OlCUN #cpp #CppNorth

In today’s @CppNorth talk "Exceptionally Bad" (11:00 AM MDT), Peter Muldoon will discuss the original intent of exceptions & how their mechanics work, as well as cases of exception misuse + some better ways to handle each situation
#cpp #cplusplus #CppNorth
https://bloom.bg/3NJPmwX

In today’s @CppNorth talk "C++ Modules” (2:30 PM MDT), @Bloomberg’s Daniel Ruoso will explore the challenges that header units, as specified in C++20, create for implementers, plus some possible solutions to those challenges
#cpp20 #cpp #cplusplus #CppNorth
https://bloom.bg/41nxCuB

During tonight's lightning talks session at @CppNorth (8 PM MDT), @Bloomberg engineer Chris Fretz will share some fascinating tricks that can be used to simulate modern C++ features in older standards
#cpp #CppNorth #cplusplus
https://bloom.bg/3LPsTff

It's nice to have people on campus again! C++ is happening now! Check out their video from past years at the Center: https://www.youtube.com/watch?v=Um2pH_fLv6o #CppNorth @CppNorth #cpp #cpp23

In today’s @CppNorth talk "Requirements for C++ Successor Languages" (9:00 AM MDT), @Bloomberg engineer @bretbrownjr will discuss how to consider the feasibility & velocity in converting existing #cplusplus projects to the Next Big Thing
#cpp #CppNorth #cpp20
https://bloom.bg/3LGKbLp

Off I go to #CppNorth! The estimated travel time is 27 hours. Excited to give a talk about BLADE, the GPU-based beamforming pipeline of the Allen Telescope Array.

I'll be airing grievances about integers at #CppNorth in Aspen in May https://CppNorth.org/ I got a lot of problems with you people and now you're gonna hear about it!

The CppNorth 2023 Call for Submissions is now open!

https://CppNorth.org/announcements/2022/12/2023-CfS/

#CppNorth

Today, during @CppNorth 2022 (11 AM MDT), Peter Muldoon will share some of the key lessons he's learned about how to successfully redesign a legacy system during his 30-year career as a software engineer
https://bloom.bg/3KN1hF7
#cplusplus #cpp #CppNorth

The style of `const unsigned int` is named "const west". `unsigned int const` is "east const". This style debate has split the C++ community. My compromise style was rejected, I feel, without sufficient consideration -- central const: `unsigned const int`. #CppNorth

Back To Schedule

Why Good Code is Relative

How the Environment Changes the Way We Write C++ Code

13:30 - 14:30 Tuesday 18th July 2023 EDT Knightsbridge
Beginner
Intermediate
Advanced
Embedded / Low-Level

We all like to think that there is only one universal way to write good code which can be applied in all environments.

However, in reality, there is no such thing as universally good code. Just like every species in nature is adapted to its natural habitat, our C++ code also has to be adapted to the preconditions and the environment in which our code runs.

Drawing from the experience of over a decade of C++ programming in the embedded automotive domain, this talk is going to explain what this means in practice.

As one example, we'll start with a seemingly innocent constraint like "no heap allocations" and see how this leads us to a certain flavour of C++ that is best suited to work in such a domain.

On the way, we'll briefly revisit how dynamic polymorphism can be replaced with static polymorphism (CRTP) and learn how to extend CRTP to support an arbitrary number of inheritance levels to make it a full replacement for dynamic polymorphism .

Furthermore, we'll learn about deterministic re-computability and why this is something that one should aim for in self-driving / driver assistance functions. Imagine a problem that occurs every 100 or 1000 hours driven and for which you happen to have a recording. How can we guarantee that we can exactly reproduce this problem in a re-simulation? Answering this question will also have significant impacts on how to properly design SW for such a use-case.

Daniel Withopf

Staff EngineerRobert Bosch GmbH

Daniel Withopf has been working on solving real-world problems with C++ in robotics and related fields for over 20 years. He currently is a Software Engineer at the German car supplier Bosch where he wrote and maintains an object tracking framework for self-driving car projects. While doing that he discovered novel ways how to leverage C++'s type system to create linear algebra and tracking code that is more expressive, easier to understand and less likely to contain errors.