llvm-project/libcxx/docs/DesignDocs
Louis Dionne 2ae52326da [libc++] Towards a simpler extern template story in libc++
The flexibility around extern template instantiation declarations in
libc++ result in a very complicated model, especially when support for
slightly different configurations (like the debug mode or assertions
in the dylib) are taken into account. That results in unexpected bugs
like http://llvm.org/PR50534 (and there have been multiple similar
bugs in the past, notably around the debug mode).

This patch gets rid of the _LIBCPP_DISABLE_EXTERN_TEMPLATE knob, which
I don't think is fundamental. Indeed, the motivation for that knob was to
avoid taking a dependency on the library, however that can be done better
by linking against the static library instead. And in fact, some parts of
the headers will always depend on things defined in the library, which
defeats the original goal of _LIBCPP_DISABLE_EXTERN_TEMPLATE.

Differential Revision: https://reviews.llvm.org/D103960
2022-06-08 22:05:07 -04:00
..
ABIVersioning.rst [libc++] Update ABI docs. NFCI. 2021-06-29 12:39:23 -04:00
AtomicDesign.rst [libc++] Remove the old HTML documentation 2021-06-08 11:18:12 -04:00
CapturingConfigInfo.rst [libc++] Correct outdated documentation about __config_site 2022-03-23 13:42:04 -04:00
DebugMode.rst [libc++] Make the Debug mode a configuration-time only option 2022-06-07 16:33:53 -04:00
ExperimentalFeatures.rst
ExtendedCXX03Support.rst [libc++] Add auto to the list of required extensions in C++03 2022-05-23 20:48:53 +02:00
FeatureTestMacros.rst [libc++] Use c++20 instead of c++2a consistently. 2021-01-07 13:11:33 +01:00
FileTimeType.rst [libc++][gardening] Replace instances of `\x{AD}`. 2021-04-19 14:59:46 -07:00
NoexceptPolicy.rst [lic++][docs] Explain noexcept policy for narrow contracts. 2021-02-05 11:27:19 -08:00
ThreadingSupportAPI.rst
UniquePtrTrivialAbi.rst [libcxx][doc][nfc] Fixed typo in doc 2022-01-21 10:17:28 -05:00
UnspecifiedBehaviorRandomization.rst [libc++][docs] Change some words to use reST inline literals 2022-02-07 10:00:42 -08:00
VisibilityMacros.rst [libc++] Towards a simpler extern template story in libc++ 2022-06-08 22:05:07 -04:00