[libc++] Add _LIBCPP_DISABLE_EXTERN_TEMPLATE config option
authorShoaib Meenai <smeenai@fb.com>
Thu, 13 Apr 2017 20:13:32 +0000 (20:13 +0000)
committerShoaib Meenai <smeenai@fb.com>
Thu, 13 Apr 2017 20:13:32 +0000 (20:13 +0000)
commit461764de0d108aaab930df655ce7473ec9cba316
tree7d7c87e613e65a2e8ad0c0866460dd2816bc9fae
parent3e2576a768d6e606ca51c14d8e6848b409fb5d0e
[libc++] Add _LIBCPP_DISABLE_EXTERN_TEMPLATE config option

When the libc++ extern template macros were added, the intent was for it
to be possible for consumers of the headers to disable extern templates
(via `-D_LIBCPP_EXTERN_TEMPLATE(...)=`). Unfortunately, support for
specifying function-like macros varies on the command line varies across
compilers (e.g. MSVC doesn't support it at all), and cmake doesn't allow
it for the same reason. Add a non-function macro for this purpose.

The intended use is for libraries which want to use the libc++ headers
without taking a dependency on the libc++ library itself. I can name the
macro something which reflects its intent rather than its behavior (e.g.
`_LIBCPP_HEADER_ONLY`) if desired.

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

llvm-svn: 300246
libcxx/docs/UsingLibcxx.rst
libcxx/include/__config