TCH AB abulyaev The Third Destructor: Complete Object Destructor (D0) Earlier we discussed the two most visible destructor variants generated under the Itanium C++ ABI:
TCH AB abulyaev What Is the VTT (Virtual Table Table) in C++? While exploring the assembly generated for classes with virtual inheritance in the previous article, we ran into a line that looked…
TCH AB abulyaev Why Does a Simple C++ Class Generate Two Destructors in Assembly? I was playing with godbolt and discovered something interesting by my point of view. While inspecting the assembly output of a C++ class…
TCH AB abulyaev Why C++ Has Multiple Constructors (C1, C2, C3) — Just Like Destructors In the previous article, we explored how a single virtual destructor in C++ can result in multiple destructor variants being generated by…
MDA TCH AB abulyaev Why Does libc++ Use Prime Numbers for Hash Table Rehashing? I’m continuing to explore the internals of libc++ (LLVM’s C++ standard library), and I ran into a small but very intentional line inside…
TCH AB abulyaev What Magic Is Happening Inside libc++ Rehash? I am continuing to explore the internals of libc++’s hash table implementation, I came across this line:
TCH AB abulyaev Why Is There a void() in This C++ for Loop? While digging through unordered_map in libc++, I stumbled on a curious line inside a rehash routine: