I discovered that g++ 3.1 elides copy constructors when returning objects from functions. I wrote a small test program to prove it — the copy constructor simply never gets called. Today we call this Named Return Value Optimization (NRVO), and it’s part of the C++ standard. Back then it felt like compiler magic.