Loading…
strong>• API Design [clear filter]
Monday, September 16
 

11:00 MDT

Creating a Sender/Receiver HTTP Server
Monday September 16, 2024 11:00 - 12:00 MDT
The sender/receiver framework for asynchronous operations in C++ is well on its way towards standardization in C++26. Previously, the theoretical background and implementation of the framework was shown but there wasn't much detail on how an application using sender/receiver would look like.

This presentation shows how to create a simple HTTP server using the sender/receiver framework with matching networking senders together with a coroutine task and and async scope. The code is created live using fundamental facilities. The goal is to demonstrate that the use of an asynchronous framework doesn't necessarily lead to excessive complexity when using C++'s facilities effectively. The resulting server could be embedded into any application, e.g., to inspect its state or change configurations. The takeaway is that it is reasonably straight forward to create an asynchronous program.
Speakers
avatar for Dietmar Kühl

Dietmar Kühl

Developer, Bloomberg
Dietmar Kühl is a senior software developer at Bloomberg L.P. working on the data distrubtion environment used both internally and by enterprise installations at clients. In the past, he has done mainly consulting for software projects in the finance area. He is a regular attendee... Read More →
Monday September 16, 2024 11:00 - 12:00 MDT
Cottonwood 8/9

11:00 MDT

Security Beyond Memory Safety - Using Modern C++ to Avoid Vulnerabilities by Design
Monday September 16, 2024 11:00 - 12:00 MDT
Nowadays, there is one topic that comes up in virtually all discussions on system programming languages: memory safety.
However, even though memory safety rules out many of the most common sources of vulnerabilities, there are still plenty of ways how a vulnerability may find its way into the codebase.

In this talk, we look beyond memory safety and explore how we can prevent vulnerabilities through simple yet effective C++ constructions and custom static analysis scripts.
We analyze multiple examples, from basics like input validation to complex time-of-check vs time-of-use issues when accessing shared resources, all of which are inspired by real-world products, use cases, or vulnerabilities.
For each example, we discuss attacker models, threats, and implementation pitfalls, before looking at potential solutions that are not just secure by themselves but also protect developers from accidentally introducing vulnerabilities in the future.

Attendees will leave with a deeper understanding of security engineering and
inspirations for leveraging C++ to prevent potential security issues by design.
Speakers
avatar for Max Hoffmann

Max Hoffmann

Security Manager, ETAS
Max Hoffmann studied cybersecurity and got his Ph.D. in hardware security at the Ruhr University Bochum, Germany, in association with the Max Planck Institute for Security and Privacy at the research group of Professor Christof Paar. With a passion for teaching, he continues to contribute... Read More →
Monday September 16, 2024 11:00 - 12:00 MDT
Adams A
 
Tuesday, September 17
 

09:00 MDT

Reflection based libraries to look forward to
Tuesday September 17, 2024 09:00 - 10:00 MDT
Our C++ code often contains violations of "Don't Repeat Yourself" (DRY). You write down enums, but then you also have to write their stringified version. You write down a class, but you have to expose every method / member in the class separately to be able to bind your class to a Python program (for example).

Reflection is (potentially / hopefully) showing up for C++26, having already been design approved by EWG, its chances are looking promising! This talk will discuss everything the basics of reflection, and we will lead up to three library ideas based on reflection, as a way to understand the massive impact this might have on the kind of libraries our ecosystem can provide, without relying on the core language to provide such abilities. The examples we will go through are:

Automatic python bindings
ABI hashing (hashing a type for efficient compatibility checking)
A better std::any variant type that brings duck typing to C++

Come attend this talk if you'd like to hear about cool new library possibilities that have opened up with reflection!
Speakers
avatar for Saksham Sharma

Saksham Sharma

Director, Quantitative Research Technology, Tower Research Capital
Saksham Sharma is a Director of Quantitative Research Technology at Tower Research Capital LLC, a high frequency trading firm based out of New York. He develops low latency and high throughput trading systems and strategies used for the firm's global quantitative trading. In addition... Read More →
Tuesday September 17, 2024 09:00 - 10:00 MDT
Maple 3/4/5
 
Wednesday, September 18
 

09:00 MDT

Hidden Overhead of a Function API
Wednesday September 18, 2024 09:00 - 10:00 MDT
API design and code performance are some of the most discussed topics in the C++ community. However, surprisingly little is said about the fundamental element of programming where they meet: the function signature. As a result, overhead that can be incurred inside every function body and at every call site is not commonly recognized. Non-inlined function calls are places where the ABI specification comes into play, and its effect on the generated assembly doesn’t always match expectations, even on the common platforms.

In this talk, we’ll bridge the gap and provide a comprehensive list of performance pitfalls to be aware of when designing a function signature, including a compiler’s view on the frequently debated questions:
- returning by value or by output parameter;
- passing parameters by value or by reference;
- using abstractions that are commonly considered to have zero runtime overhead, such as std::unique_ptr and std::span.
Speakers
avatar for Oleksandr Bacherikov

Oleksandr Bacherikov

Software Engineer, Snap Inc
Oleksandr Bacherikov is a Software Engineer at Snap Inc working on Computer Vision and Machine Learning magic for mobile devices. He has more than 15 years of experience in Competitive Programming and is interested in implementing algorithms in the most effective, concise, and generic... Read More →
Wednesday September 18, 2024 09:00 - 10:00 MDT
Cottonwood 8/9
 
Thursday, September 19
 

09:00 MDT

Deciphering C++ Coroutines - Mastering Asynchronous Control Flow
Thursday September 19, 2024 09:00 - 10:00 MDT
One of the most powerful applications of coroutines is in the context of asynchronous operations, where their use allows for significant simplifactions of application code. Unfortunately, building an asynchronous library interface to enable such benefits for applications is not exactly straightforward in C++.

In this talk we will explore the essentials of managing asynchronous control flow with coroutines. We will discover how to reconstruct the call stack of nested asynchronous calls and thus bridge a significant gap between C++'s stackless coroutines and the stackful coroutines from other languages. We will learn how to build a mechanism similar to the async/await from languages like Python or Javascript for our own libraries. And we will explore how we can perform arbitrary manipulations of the call stack in such an environment to unleash the full power of C++'s coroutine mechanism.

At the end of this talk we will have a proper understanding of how the Task<> type found in many coroutine libraries works and how it can be used to manage asynchronous operations. This will serve as an important building block for understanding more advanced mechanisms, like the sender/receiver mechanism proposed for C++26.

This talk assumes basic familiarity with the components of the C++ coroutines language feature: promises, awaitables, coroutine handles, and passing data in and out of coroutines.

This is the second part in an ongoing series of talks about C++20 coroutines.
Speakers
avatar for Andreas Weis

Andreas Weis

Andreas Weis has been writing C++ code in many different domains, from real-time graphics, to distributed applications, to embedded systems. As a library writer by nature, he enjoys writing portable code and exposing complex functionalities through simple, richly-typed interfaces... Read More →
Thursday September 19, 2024 09:00 - 10:00 MDT
Adams A

16:45 MDT

Irksome C++
Thursday September 19, 2024 16:45 - 17:45 MDT
As much as I like C++, it is certainly not free of -- let's say -- quirks.  Both the core language and the standard library exhibit idiosyncracies, sometimes even in conflict with one another.

Some of these "oops" may be historical in origin.  However, most are due to the spectrum of viewpoints held by the hundreds of contributors who have participated in C++ standardization to date.

This talk points out many of these inconsistencies and numerous other infelicities in naming, behavior, or both.  Come see whether *your* pet C++ peeve is mentioned!
Speakers
avatar for Walter E Brown

Walter E Brown

With broad experience in industry, academia, consulting, and research, Dr. Walter E. Brown has been a computer programmer for over 60 years, and a C++ programmer for more than 40 years. He joined the C++ standards effort in 2000, and has since written circa 175 proposal papers. Among... Read More →
Thursday September 19, 2024 16:45 - 17:45 MDT
Adams A
 
Share Modal

Share this link via

Or copy link

Filter sessions
Apply filters to sessions.