C Constructs That Still Don’t Work in C++ — and a Few That Changed
Summary
The article analyzes how C constructs map to C++ across C17, C23, and C++20/23, focusing on designated initializers, empty-parameter lists, malloc object lifetime, const_cast, enums, and other edge cases. It emphasizes labeling language mode, separating storage from lifetime, and migration tips for C/C++ interop, with practical guidance for ABI stability and header design.