Type punning (treating an object as if it were another one) is common in C++ code bases, yet most of the time it technically is undefined behavior. Typically it is used when reinterpreting bytes received from a network socket as a POD-struct. This article tries to answer two questions: Why should I not use reinterpret_cast? and What to use instead? It is heavily inspired by Timur Doumler’s talk at CppCon 2019.