Talks

Here are the talks that I gave in various events.

CppCon 2021: Required Field for Designated Initialization

Designated initialization provides us with a way to mimic "named parameter" in C++. However, by doing so, we lost the ability to enforce the client code to provide a value for specific fields. And this talk gives a way to recover that ability.

Date: 2021-08-29

CUDA Boid

This talk focuses on flocking simulation in CUDA. It starts with the three rules of boid simulation and then delves into how to optimize such a GPU simulation.

Date: 2021-01-06

Type Erasure: Concept and Implementation

This talk explains the idea of type erasure in the C++ context and how it gets implemented. It first explores C style type erasure with the cast and void* and OOP style type-erasure with inheritance and virtual dispatch. And then, It explains more advanced type erasure techniques used in standard library types such as std::function. And the talk then spend the majority of time gave a case study on how to implement the proposed unique_function type.

Date: 2020-02-13

CppCon 2019: “Make impossible state unrepresentable”

A lighting talk on how to design data and types in C++ to leverage the static type system so that invariants breaking becomes impossible in certain instances.

Date: 2019-09-18