Hacker Timesnew | past | comments | ask | show | jobs | submitlogin

That’s for C++. And how is std::variant implemented?


not using a union: https://ojdip.net/2013/10/implementing-a-variant-type-in-cpp... because the union can't be extended with variadic template types


Actually, it does use a union, in both libstdc++ [0] and libc++ [1]. (Underneath a lengthy stack of base classes, since it wouldn't be C++ if it weren't painful to match the specified semantics.)

[0] https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=libstdc%2B%2B-v3...

[1] https://github.com/llvm/llvm-project/blob/llvmorg-20.1.3/lib...


So instead it has a buffer large enough to hold all the types? That’s what union does.

Still waiting to hear the security concerns.




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: