[libc++] Reorganize the std::variant macros (#89419)

std::variant uses multiple macros to generate special member functions.
These macros were very subtle to read because of e.g. a macro argument
appearing in the middle of a macro-ized class definition. In conjunction
with clang-format, this could lead to extremely subtle macro expansions
that were not easy to parse for humans.

By adding semi-colons in macro expansions in judicious places,
clang-format does a better job and makes these macros a lot easier to
read.

As a drive-by fix, I noticed that several of these functions were
missing HIDE_FROM_ABI annotations, so I added them.

GitOrigin-RevId: 584a9bfa0eb60ef04406eef50da26a5cb32c801d
1 file changed