Tag: ABI
4 posts
-
C++ extern Linkage: External vs Internal Linkage, extern "C" and the ODR
C++ extern linkage: external vs internal linkage, extern "C", ODR-safe headers, const globals, namespaces, and explicit template instantiation.
-
C++ Interface Design and PIMPL: Cut Compile Dependencies
Use the PIMPL idiom to hide implementation details, shrink rebuild graphs, and keep a stable binary layout for shared libraries and plugins.
-
The Pimpl Idiom: Out-of-Line Destructors, unique_ptr<Impl> and the Build-Time vs Runtime Trade-off
Why the Pimpl destructor must be defined out-of-line, why unique_ptr<Impl> forces the full Rule of Five, and how Pimpl trades compile-time decoupling for indirect-call overhead — with a working fix for the classic Fast-Pimpl placement-new mistake.
-
C++ Name Mangling: Reading _Z Symbols, extern "C", and Link Errors
How C++ compilers encode namespaces, overloads, const and templates into symbols, reading them with nm and c++filt, and when extern "C" fixes link errors.