7 comments

[ 2.2 ms ] story [ 27.4 ms ] thread
Ever looked at `std::any` and wondered what's going on behind the scenes? Beneath the intimidating interface is a classic technique called type erasure: concrete types hidden behind a small, uniform wrapper.

Starting from familiar tools like virtual functions and templates, we'll build a minimal `std::any`. By the end, you'll have a clear understanding of how type erasure works under the hood.

(comment deleted)
Great breakdown of type erasure! It's fascinating how std::any manages to hide concrete types behind a uniform interface, similar to how virtual functions enable polymorphism but with even more flexibility. The shape class example really helps demystify what's happening under the hood.
Thanks for writing this. This is unrelated, but one downside of AI being used as an oracle is that I feel like it is/will be less likely to accidentally stumble on an article like this, which clearly explains something I probably never would've asked.