libcxx fork for Darling build
Go to file
Eric Fiselier 3a1b90a866 Rework fix for PR19460 - Use explicit bool as an extension instead.
In the previous fix I used a PMF type as a semi-safe bool type in C++03.
However immediately after committing I realized clang offered explicit
conversion operators as an extension. This patch removes the old fix and
enables _LIBCPP_EXPLICIT using __has_extension instead.

This change also affects the following other classes, which have
'_LIBCPP_EXPLICIT operator bool()'.

* shared_ptr
* unique_ptr
* error_condition
* basic_ios
* function (already C++11 only)
* istream::sentry
* experimental::string_view.

In all of the above cases I believe it is safe to enable the extension, except
in the experimental::string_view case. There seem to be some Clang bugs
affecting the experimental::string_view conversion to std::basic_string. To
work around that I manually disabled _LIBCPP_EXPLICIT in that case.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@290831 91177308-0d34-0410-b5e6-96231b3b80d8
2017-01-02 20:15:33 +00:00
benchmarks improve performance of string::find 2016-12-30 18:01:36 +00:00
cmake build: dont detect libraries for Windows 2017-01-01 20:20:38 +00:00
docs Remove dead debug_mode doc link 2016-12-28 06:21:09 +00:00
include Rework fix for PR19460 - Use explicit bool as an extension instead. 2017-01-02 20:15:33 +00:00
lib Fix build using the buildit script 2016-12-29 22:42:45 +00:00
src chrono: correct the units for the epoch bias 2017-01-02 18:41:50 +00:00
test Fix some 'FIXME's in the tests. 2016-12-30 17:42:11 +00:00
utils Make LIBCXX_ENABLE_STATIC_ABI_LIBRARY merge libc++.a and libc++abi.a 2016-11-18 19:53:45 +00:00
www Update "Making Optional Greater Equal Again" paper status 2016-12-30 04:16:30 +00:00
.arcconfig Upgrade arcconfig to use https 2016-07-18 02:02:49 +00:00
.clang-format fix misspelling in .clang-format 2016-12-09 03:18:45 +00:00
.gitignore Implement N4606 optional 2016-10-12 07:46:20 +00:00
CMakeLists.txt build: further improve flags handling for cl 2017-01-01 20:20:40 +00:00
CREDITS.TXT Add entry to CREDITS.TXT for propagate_const 2016-06-19 19:36:28 +00:00
LICENSE.TXT Update copyright year to 2016. 2016-03-30 22:39:53 +00:00
NOTES.TXT Update doc and various cleanup 2016-12-23 20:00:13 +00:00
TODO.TXT Update doc and various cleanup 2016-12-23 20:00:13 +00:00

libc++ Documentation
====================

The libc++ documentation is written using the Sphinx documentation generator. It is
currently tested with Sphinx 1.1.3.

To build the documents into html configure libc++ with the following cmake options:

  * -DLLVM_ENABLE_SPHINX=ON
  * -DLIBCXX_INCLUDE_DOCS=ON

After configuring libc++ with these options the make rule `docs-libcxx-html`
should be available.