This report is based on the Itanium C++ ABI (version 1.2), Microsoft C++ ABI (x64), and publicly available documentation for GCC 13, Clang 17, and MSVC 2022.
: When you use the new or delete operators, the runtime manages the heap. It communicates with the OS to request memory blocks and keeps track of them to prevent fragmentation. c++ runtime
On Linux: readelf -S a.out (look for .init_array , .eh_frame , .gcc_except_table ) On Windows: dumpbin /HEADERS myapp.exe (look for .pdata for x64 exception tables) This report is based on the Itanium C++ ABI (version 1
static Logger& getLogger() static Logger instance; // thread‑safe initialization return instance; Microsoft C++ ABI (x64)
C++11 requires that initialization of a function‑local static variable be thread‑safe. The runtime implements this using a guard variable.