[libc++] Fix extern template visibility for Windows
authorShoaib Meenai <smeenai@fb.com>
Mon, 19 Sep 2016 18:29:07 +0000 (18:29 +0000)
committerShoaib Meenai <smeenai@fb.com>
Mon, 19 Sep 2016 18:29:07 +0000 (18:29 +0000)
commit190994e435884229ca058362e9974a5de4c41947
tree9b04d11dc8bc301699d23abe99ebd450a513712c
parent1197a1612d89c019ef67e43e15f45c7615b13b4d
[libc++] Fix extern template visibility for Windows

On Windows, marking an `extern template class` declaration as exported
actually forces an instantiation, which is not the desired behavior.
Instead, the actual explicit instantiations need to be exported.

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

llvm-svn: 281925
libcxx/docs/DesignDocs/VisibilityMacros.rst
libcxx/include/__config
libcxx/src/ios.cpp
libcxx/src/locale.cpp
libcxx/src/string.cpp