<< Previous

C++ Reflection: Back on Track

Speaker: David Olsen

Audience level: [ Intermediate | Advanced ]

C++ reflection has been a long-sought goal of users and language designers. But previous attempts have failed to get wide enough support to make it into the C++ standard or be widely implemented. A newly revised design has incorporated the lessons learned from previous proposals and is gaining momentum in the C++ standards committee.

Parallel Algorithms, Ranges and oneDPL

Speaker: Abhilash Majumder

Audience level: [ Beginner | Intermediate ]

This talk abstracts the proposals to parallelization( P2300,P2500, P3179 ) and its affect on oneDPL (Intel ParallelSTL). Parallelism and asynchronous task execution is predominant in most of hardware accelerators (namely  GPUs, FPGAs etc), and while std provides implementations of mutex, semaphores, thread , atomic libraries to induce parallelism, it is often difficult to use them in accelerator concepts. P2300 focuses on senders , receivers for async task scheduling across a threadpool, and this concept can be advocated for accelerator interfaces as well. With a user defined execution policy targetting a specific accelerator, senders receivers can be used to schedule parallel tasks. Multiple senders can be used to create a dependency graph (which is mainly used in most accelerators) with existing policies. This talk focuses on how to induce parallelism in the concept of accelerators and use std::execution with policies to cater to standard algorithms as well as ranges. 

This...

The Notorious B.U.G. - The Most Popular Bugs and Code Smells in C and C++

Speaker: Philipp Dominik Schubert

Audience level: [ Beginner | Intermediate ]

The C and C++ programming languages are often regarded as particularly error-prone. The US President’s administration recently recommended avoiding using memory-unsafe languages such as C and C++. But to what extent does this recommendation also apply to modern, contemporary C++?

Applied modern c++ : beyond type-erasure and visitor design patterns

Speaker: Olivia Quinet

Audience level: [ Beginner | Intermediate ]

The type-erasure design pattern allows to apply a fixed set of methods to a growing set of object types whereas the visitor design pattern applies a growing set of methods to a fixed set of objects.

Stories from a parallel universe

Speaker: Jana Machutová

Audience level: [ Intermediate ]

Would you like to know how to use the power of parallel algorithms from standard library in your project? Come to my talk, and you will uncover the benefits of parallel algorithms and learn about them in story-based examples.

An Introduction to WebGPU and C++ (Native and Web)

Speaker: Michael Shah

Audience level: [ Beginner ]

The C++ Standard Library does not yet have an '#include <graphics>' library, so instead we rely on vendors to provide APIs for hardware accelerated graphics. When it comes to graphics programming, there exist many low level APIs available including: DirectX, OpenGL, Vulkan, and Metal. However, there's a new API -- WebGPU that supports both native and web targets and can run nearly anywhere! In this talk, I will provide an introduction to using the WebGPU API in C++. In this talk we'll provide some background so that you can understand the graphics programming basics, and then we'll show you how to render a simple 3D triangle on both native and web targets. Throughout the talk, we'll also provide suggestions how how to leverage C++ to build your own mini-graphics framework. The audience will leave this talk able to continue their graphics programming journey with WebGPU and C++.

...

An Introduction to WebGPU and C++ (Native and Web)

Speaker: Michael Shah

Audience level: 1

The C++ Standard Library does not yet have an '#include <graphics>' library, so instead we rely on vendors to provide APIs for hardware accelerated graphics. When it comes to graphics programming, there exist many low level APIs available including: DirectX, OpenGL, Vulkan, and Metal. However, there's a new API -- WebGPU that supports both native and web targets and can run nearly anywhere! In this talk, I will provide an introduction to using the WebGPU API in C++. In this talk we'll provide some background so that you can understand the graphics programming basics, and then we'll show you how to render a simple 3D triangle on both native and web targets. Throughout the talk, we'll also provide suggestions how how to leverage C++ to build your own mini-graphics framework. The audience will leave this talk able to continue their graphics programming journey with WebGPU and C++.

...

The Aging Programmer

Speaker: Kate Gregory

Audience level: [ Beginner ]

We all get older every day. But when are you old? Do the natural changes of aging make it harder to be a good programmer? Do you have to stop or can you keep going? What can you do to make both aging and programming more pleasant for yourself? How can you help the older people you know, and set up systems that will help you when you need it? When it comes to ensuring a pleasant and long old age, it's not too late -- and it's also never too soon.

...

Effective this—practical guide to explicit object pointer

Speaker: Dawid Zalewski

Audience level: [ Intermediate | Advanced ]

this is as old as C++. It's been tirelessly passed to every non-static member function by the compiler with us barely noticing. We've had no control over it, and very few reasons to ever spell it out in code.

Mimicking SQL: API Design Choices

Speaker: Jonathan O'Connor

Audience level: [ Intermediate | Advanced ]

With few exceptions, most developers will eventually have to learn SQL. In our C++ world, many of us are familiar with the ranges library. Can we write a library that makes it easy to manipulate containers using a SQL like syntax, rather than writing raw loops or ranges code?

Writing VSCode extensions for fun an profit

Speaker: Nikolaj Fogh

Audience level: [ Beginner ]

This talk is not so much a talk about C++. Actually, it is not about C++ at all, but about how we can use VSCode extensions to replace legacy IDEs and integrate legacy build systems into a modern editor.

Software Engineering Completeness : Knowing when you are Done and Why it matters ?

Speaker: Peter Muldoon

Audience level: [ Beginner | Intermediate | Advanced ]

Whether creating new features or fixing bugs, what does Done mean in Software Engineering terms and what is its effect on delivering change in the real world ?

There is no Silver Bullet

Speaker: Klaus Iglberger

Audience level: [ Intermediate | Advanced ]

Most developers love simplifications — they love the idea of that one tool that solves all of their problems. We have seen that in the late 90s and early 2000s, when object-oriented programming (OOP) was promoted as the one solution to all software problems. Today, however, the tide seems to have turned and functional programming (FP) is on the rise. OOP, on the other hand, seems to be considered an obsolescent paradigm:

“Inheritance...

Pipeline architectures in C++: overloaded pipe operator |, std::expected and its monadic operations

Speaker: Boguslaw Cyganek

Audience level: [ Beginner | Intermediate | Advanced ]

Functional programming in C++ is gaining importance and is attracting programmers. One of its most characteristic patterns is composition of functions in the form of a pipeline pattern. Since C++20 we can use the ranges library with its characteristic function composition abilities thanks to the overloaded pipe operator.

Portable floating-point calculations

Speaker: Guy Davidson

Audience level: [ Intermediate | Advanced ]

The behaviour of floating point calculations is often unintuitive and hard to reason about, complicated by the non-associativity of floating point addition as well as rounding modes. If you need cross-platform portability, which you may if you are in domains like games or audio where it can be critically important, then you are in a whole heap of trouble. In this talk I'll tell you why you may need this portability, why it is so hard to solve, and what approach we took at Six Impossible Things Before Breakfast to achieve this critical feature.

...

Next >>