HomePhabricator

[libc++] Re-apply the switch-based std::variant implementation

Authored by mpark on Oct 26 2020, 9:34 AM.

Description

[libc++] Re-apply the switch-based std::variant implementation

This commit is a mass re-application of the following commits:

7d15ece79c16dc3237fc514ff56a69e3d58fbd39
e0ec7a02064968c7df11713689107148b4efb993
02197f7e50b938f8167b17b89bdf7c55feff4339
a175a96517c5d9dc05ba13a6481b1b031a53a22f

Those were temporarily reverted in 057028ed391f8, and never re-applied.
Re-committed by @ldionne (author edited for credit).

Differential Revision: https://reviews.llvm.org/D90168