This patch fixes an issue that I encountered while porting the filesystem library to Windows (which I'll submit a patch for in a few days).
libc++experimental is always a static library, but on Windows the experimental APIs get marked with dllimport/dllexport.
This patch changes that by adding experimental visibility macros that don't use DLL declspecs on Windows.
I think it would make more sense to make these macros empty on all platforms, not just Windows. It's true that they'll only cause link errors on Windows (since you'll attempt to dllimport functions from a static library), but on ELF and Mach-O, the visibility annotations would cause these functions to be exported from whatever library c++experimental gets linked into, which is probably not desirable either.
The exception (if you'll pardon the pun) is _LIBCPPX_EXCEPTION_ABI, which will still need to expand to at least __type_visibility__((default)) for non-COFF in order for throwing and catching those types to work correctly.