llvm-project/libcxx/docs/DesignDocs
Arthur O'Dwyer 165ad89947 [libc++] [LIBCXX-DEBUG-FIXME] Our `__debug_less` breaks some complexity guarantees.
`__debug_less` ends up running the comparator up-to-twice per comparison,
because whenever `(x < y)` it goes on to verify that `!(y < x)`.
This breaks the strict "Complexity" guarantees of algorithms like
`inplace_merge`, which we test in the test suite. So, just skip the
complexity assertions in debug mode.

Differential Revision: https://reviews.llvm.org/D101677
2021-05-05 16:21:09 -04:00
..
ABIVersioning.rst
CapturingConfigInfo.rst
DebugMode.rst [libc++] [LIBCXX-DEBUG-FIXME] Our `__debug_less` breaks some complexity guarantees. 2021-05-05 16:21:09 -04:00
ExperimentalFeatures.rst [libcxx] Slightly improved policy for handling experimental features 2019-06-11 14:48:40 +00:00
ExtendedCXX03Support.rst Add documentation and tests for Clangs C++11 extensions in C++03. 2019-06-11 22:53:49 +00: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 Reland [libcxx]Put clang::trivial_abi on smart pointers 2020-07-20 11:54:34 -04:00
VisibilityMacros.rst [libc++] Give extern templates default visibility on gcc 2021-01-12 18:30:56 -08:00