Chandler Carruth & Timur Doumler


Details
โช๏ธ๐ง๐ถ๐บ๐๐ฟ ๐๐ผ๐๐บ๐น๐ฒ๐ฟ Type punning in modern C++
Type punning is often used in C++ for fast floating-point math, deserialising C++ objects from a sequence of bytes, and other purposes. Popular techniques involve unions, reinterpret_cast, and memcpy. C++20 provides new useful tools, such as bit_cast. And there are proposals to provide even better control over C++ object creation in the future.
This talk is a comprehensive overview of all of these techniques. We will discuss when and how they can be used safely without causing undefined behaviour, what C++ does and does not allow you to do (and why), existing holes in the C++ language, and how to fix them. In the process, we will cover important C++ concepts such as object lifetime, value representations, and aliasing rules.
โช๏ธ๐๐ต๐ฎ๐ป๐ฑ๐น๐ฒ๐ฟ ๐๐ฎ๐ฟ๐ฟ๐๐๐ต Programming Language Design for Performance Critical Software
Recently, several of us at Google have been working to crystalize our priorities for the design of the C++ programming language. What should it prioritize? What is less important? Programming languages are tools, and different tools are optimized for solving different problems. What kinds of problems is C++ "best" at solving?
The top priority for us and many others: performance critical software.
This talk will provide background and detail on what we mean by the term "performance critical software" as well as it being the top priority for C++. It will then dive into some interesting examples of ways in which this priority impacts programming language design. These will range from large scale features to small details, and will include both ways in which C++ is successful and ways it continues to struggle.
โช๏ธThis time no pub afterward, sorry.

Chandler Carruth & Timur Doumler