hanchenye-llvm-project/libcxx/include
Eric Fiselier aa873af53d [libcxx] expose experimental::erased_type for all standard versions.
Summary: The polymorphic allocator implementation would greatly benefit by defining virtual functions in the dynlib instead of inline. In order to do that some types are going to have to be available outside of c++1y. This is the first step.

Reviewers: mclow.lists, EricWF

Reviewed By: EricWF

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D4554

llvm-svn: 213889
2014-07-24 19:17:38 +00:00
..
experimental [libcxx] expose experimental::erased_type for all standard versions. 2014-07-24 19:17:38 +00:00
ext Do not derive __gnu_cxx::hash<T> from std::hash<T>. 2014-03-06 04:11:10 +00:00
support Add support for BIONIC C library (Android). Patch from Dan Albert 2014-07-10 15:20:28 +00:00
CMakeLists.txt eliminate install of duplicate headers (take 2) 2014-06-24 20:32:11 +00:00
__bit_reference Fix PR 19663. Some calls to find(vector<bool>) were returning iterators that were subtly invalid (didn't compare equal). Thanks to Erik Verbruggen for the report (and diagnosis) 2014-05-06 15:33:23 +00:00
__config Change _LIBCXX_CONSTEXPR_AFTER_CXX11 to check for c++14 constexpr rules 2014-07-17 05:16:18 +00:00
__debug Debug mode for string. This commit also marks the first time libc++ debug-mode has found a bug (found one in regex). Had to play with extern templates a bit to get this to work since string is heavily used within libc++.dylib. 2013-08-23 17:37:05 +00:00
__functional_03 Fix libc++ bug #20039: 'Constructing std::function from empty compatible std::function results in half-empty state' Thanks to Agustin Berge for the report, and for his and Eric Fiselier's work on a fix. 2014-06-30 21:27:51 +00:00
__functional_base Rename several internal templates to get rid of ___ (triple underscores) or worse, four. No functionality change. 2014-01-06 14:00:09 +00:00
__functional_base_03 Rename several internal templates to get rid of ___ (triple underscores) or worse, four. No functionality change. 2014-01-06 14:00:09 +00:00
__hash_table Rename _LIBCPP_DEBUG2 to _LIBCPP_DEBUG. 2013-08-23 20:10:18 +00:00
__locale Fix ctype_base::xdigit for Android. 2014-07-23 19:32:03 +00:00
__mutex_base Implement LWG issue #2135. If something goes wrong in condition_variable::wait, call terminate() rather than throwing an error. Do this indirectly, by marking the call as 'noexcept'. This is better than just calling terminate() directly, because it gives a better error message on the console. 2014-03-26 02:45:04 +00:00
__refstring Exceptions store the message as reference counted string for 2014-04-30 19:54:11 +00:00
__split_buffer G M: Changes all references to "x inline" to "inline x" where x = _libcpp_always_inline or _libcpp_inline_visibility macros. 2013-10-04 22:09:00 +00:00
__sso_allocator Use __builtin_operator_new/__builtin_operator_delete when available. This 2014-06-04 19:54:15 +00:00
__std_stream Partial implementation of N3665. This paper was not voted into the C++1y draft. However I was looking at it and with some experimentation realized that I could partially implement it, and at the same time offer a performance optimization to cout. I simply added an xsputn override to the cout filebuf. The override does nothing special at all if there is a non-trivial codecvt installed. However if the codecvt returns true for always_noconv(), then this function can dump an entire string to fwrite, instead of doing it a character at a time under overflow(). This just makes sense. I stopped short of a full implementation of N3665 because in order to do so, xsputn would have to allocate a buffer when always_noconv() returned false, and I don't want to go to that expense. 2013-08-09 16:25:43 +00:00
__tree Remove node from a container before destroying it. Thanks to Alexander Potapenko for pointing this out. 2014-04-11 08:22:42 +00:00
__tuple D4451: Fix copy/move issues casude by __tuple_leafs's converting constructor 2014-07-24 18:48:34 +00:00
__tuple_03 Nico Rieck: this patch series fixes visibility issues on Windows as explained in <http://lists.cs.uiuc.edu/pipermail/cfe-dev/2013-August/031214.html>. 2013-08-12 18:38:34 +00:00
__undef_min_max Fix-it suggestion for fixing min or max defines on Windows. 2013-11-15 23:41:01 +00:00
algorithm Fix std::make_heap's worst case time complexity 2014-07-22 06:07:09 +00:00
array G M: Changes all references to "x inline" to "inline x" where x = _libcpp_always_inline or _libcpp_inline_visibility macros. 2013-10-04 22:09:00 +00:00
atomic Stephan Tolksdorf: fixes the issue in the <atomic> header and adds corresponding tests. I've used macros to fall back to a user-provided default constructor if _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS (though I suspect that there won't be many users defining that macro). 2013-05-02 20:18:43 +00:00
bitset Make locales (and transitively, std::endl) work reliably with gcc. 2014-06-04 15:46:56 +00:00
cassert
ccomplex
cctype Nico Rieck: Currently _MSC_VER and _WIN32 are used to guard code which is 2013-08-01 18:17:34 +00:00
cerrno
cfenv
cfloat
chrono Mark namespaces for user defined literals as 'inline' 2013-10-05 21:18:32 +00:00
cinttypes
ciso646
climits
clocale
cmath Remove definition of std::fmaf from libc++. Fixes bug #18910. This function should come from the C standard library. As a drive-by fix, update the tests to remove a warning from -Wabsolute-value 2014-03-05 17:09:51 +00:00
codecvt Update synopsis in <locale> to match LWG Issue 2229. No code change 2013-08-27 14:22:13 +00:00
complex Implement literal suffixes for compled 2013-10-05 21:19:49 +00:00
complex.h
condition_variable No functionality change at this time. I've split _LIBCPP_VISIBLE up into two flags: _LIBCPP_TYPE_VIS and _LIBCPP_FUNC_VIS. This is in preparation for taking advantage of clang's new __type_visibility__ attribute. 2013-03-06 23:30:19 +00:00
csetjmp
csignal
cstdarg
cstdbool
cstddef Update cstddef after clang r207606. 2014-05-16 01:45:02 +00:00
cstdint
cstdio Implement national body comment GB9: remove std::gets 2013-10-12 19:09:47 +00:00
cstdlib Xing Xue: port to IBM XLC++/AIX. 2013-08-14 18:00:20 +00:00
cstring Nico Rieck: Currently _MSC_VER and _WIN32 are used to guard code which is 2013-08-01 18:17:34 +00:00
ctgmath
ctime
cwchar G M: Restore the ability for libcxx to compile again on mingw 64. 2013-09-17 01:34:47 +00:00
cwctype
deque Implement LWG 2193. Default constructors for standard library containers are explicit. Note that libc++ already did this for string/deque/forward_list/list/vector and the unordered containers; implement it for set/multiset/map/multimap. Add tests for all the containers. Two drive-by fixes as well: add a missing explicit in <deque>, and remove a tab that snuck into a container test. This issue is also LLVM bug 15724, and resolves it. 2014-03-05 19:06:20 +00:00
exception Nico Rieck: this patch series fixes visibility issues on Windows as explained in <http://lists.cs.uiuc.edu/pipermail/cfe-dev/2013-August/031214.html>. 2013-08-12 18:38:34 +00:00
forward_list Support forward_list<Incomplete Type>. Patch by Zhihao Yuan! 2014-02-05 01:44:17 +00:00
fstream Nico Rieck: this patch series fixes visibility issues on Windows as explained in <http://lists.cs.uiuc.edu/pipermail/cfe-dev/2013-August/031214.html>. 2013-08-12 18:38:34 +00:00
functional Fix libc++ bug #20039: 'Constructing std::function from empty compatible std::function results in half-empty state' Thanks to Agustin Berge for the report, and for his and Eric Fiselier's work on a fix. 2014-06-30 21:27:51 +00:00
future Fix PR19819 2014-04-07 13:32:26 +00:00
initializer_list Apply constexpr to initializer_list for c++1y. 2013-08-26 20:11:32 +00:00
iomanip Implement LWG #2344: quoted()'s interaction with padding is unclear. I think that anyone using quoted with padding is really confused, but it should work the way the rest of iostreams works. 2014-03-07 21:45:32 +00:00
ios Patch by GM: Making implicit conversion to bool explicit in <ios> and <__locale> 2013-10-21 14:41:05 +00:00
iosfwd Nico Rieck: this patch series fixes visibility issues on Windows as explained in <http://lists.cs.uiuc.edu/pipermail/cfe-dev/2013-August/031214.html>. 2013-08-12 18:38:34 +00:00
iostream No functionality change at this time. I've split _LIBCPP_VISIBLE up into two flags: _LIBCPP_TYPE_VIS and _LIBCPP_FUNC_VIS. This is in preparation for taking advantage of clang's new __type_visibility__ attribute. 2013-03-06 23:30:19 +00:00
istream LWG issue 2341; Make the two variants of basic_ostream::seekp and basic_istream::seekg behave consistently; update tests to make sure 2013-10-31 22:20:45 +00:00
iterator THIRD TIME. Richard pointed out (again) that I'd switched the order of the instance variables; and thus failed to repair the ABI break. After this, I'm going to sit down and watch TV for the evening. 2014-03-12 01:19:36 +00:00
limits Add a _LIBCPP_CONSTEXPR that was missed in r170026. 2014-05-30 12:09:47 +00:00
list Update synopsis for list/forward_list/deque to match the allocator style of existing comment. No code change 2013-09-09 18:19:45 +00:00
locale Change Windows decoration on some base classes 2014-07-16 01:00:26 +00:00
map Remove some unnecessary noexcept conditions. Thanks to Richard Smith for the catch. 2014-04-16 23:12:55 +00:00
memory Fix a typo in the noexcept calculation for __compressed_pair::swap. Thanks to EricWF for the bug report and the fix. 2014-06-30 15:35:09 +00:00
module.modulemap [modules] Add initial module map for libc++. 2014-05-21 00:33:49 +00:00
mutex Nico Rieck: this patch series fixes visibility issues on Windows as explained in <http://lists.cs.uiuc.edu/pipermail/cfe-dev/2013-August/031214.html>. 2013-08-12 18:38:34 +00:00
new Use __builtin_operator_new/__builtin_operator_delete when available. This 2014-06-04 19:54:15 +00:00
numeric Zhihao Yuan noted that a move assignment operation was missing from std::adjacent_difference. Fixed. 2013-08-22 18:02:34 +00:00
ostream Remove tabs that crept in during an earlier refactoring. No functionality change 2014-02-16 01:57:26 +00:00
queue Nico Rieck: this patch series fixes visibility issues on Windows as explained in <http://lists.cs.uiuc.edu/pipermail/cfe-dev/2013-August/031214.html>. 2013-08-12 18:38:34 +00:00
random Mark seed_seq default constructor and size() as noexcept. This is implied, but not required by LWG issue 2180 2013-10-23 05:56:47 +00:00
ratio Nico Rieck: this patch series fixes visibility issues on Windows as explained in <http://lists.cs.uiuc.edu/pipermail/cfe-dev/2013-August/031214.html>. 2013-08-12 18:38:34 +00:00
regex Fix Bug 19678 - libc++ does not correctly handle the regex: '[^\0]*' 2014-05-21 16:29:50 +00:00
scoped_allocator Nico Rieck: this patch series fixes visibility issues on Windows as explained in <http://lists.cs.uiuc.edu/pipermail/cfe-dev/2013-August/031214.html>. 2013-08-12 18:38:34 +00:00
set Remove some unnecessary noexcept conditions. Thanks to Richard Smith for the catch. 2014-04-16 23:12:55 +00:00
shared_mutex Implement N3891: A proposal to rename shared_mutex to shared_timed_mutex 2014-03-17 20:19:44 +00:00
sstream Nico Rieck: this patch series fixes visibility issues on Windows as explained in <http://lists.cs.uiuc.edu/pipermail/cfe-dev/2013-August/031214.html>. 2013-08-12 18:38:34 +00:00
stack Nico Rieck: this patch series fixes visibility issues on Windows as explained in <http://lists.cs.uiuc.edu/pipermail/cfe-dev/2013-August/031214.html>. 2013-08-12 18:38:34 +00:00
stdexcept Exceptions store the message as reference counted string for 2014-04-30 19:54:11 +00:00
streambuf Nico Rieck: this patch series fixes visibility issues on Windows as explained in <http://lists.cs.uiuc.edu/pipermail/cfe-dev/2013-August/031214.html>. 2013-08-12 18:38:34 +00:00
string Fix bug #20335 - memory leak when move-constructing a string with unequal allocator. Thanks to Thomas Koeppe for the report 2014-07-17 15:32:20 +00:00
strstream No functionality change at this time. I've split _LIBCPP_VISIBLE up into two flags: _LIBCPP_TYPE_VIS and _LIBCPP_FUNC_VIS. This is in preparation for taking advantage of clang's new __type_visibility__ attribute. 2013-03-06 23:30:19 +00:00
system_error G M: Improve support for compilers not supporting defaulted functions. 2013-08-24 21:31:37 +00:00
tgmath.h
thread Nico Rieck: this patch series fixes visibility issues on Windows as explained in <http://lists.cs.uiuc.edu/pipermail/cfe-dev/2013-August/031214.html>. 2013-08-12 18:38:34 +00:00
tuple D4451: Fix copy/move issues casude by __tuple_leafs's converting constructor 2014-07-24 18:48:34 +00:00
type_traits Correctly implement LWG 2049; std::is_destructible. 2014-07-16 15:51:50 +00:00
typeindex Nico Rieck: this patch series fixes visibility issues on Windows as explained in <http://lists.cs.uiuc.edu/pipermail/cfe-dev/2013-August/031214.html>. 2013-08-12 18:38:34 +00:00
typeinfo RTTI Uniqueness: remove __name_for_load function. 2014-04-03 09:12:38 +00:00
unordered_map Fix for PR18735 - self-assignment for map/multimap gives incorrect results in C++03 2014-02-08 04:03:14 +00:00
unordered_set Part 8 of LWG Issue 2210' unordered_set and unordered multiset; this got missed when I went on vacation 2013-09-30 21:33:51 +00:00
utility Some calls to get<>() were qualified. Some were not. Qualify them all. Fixes bug #20092. Thanks to Agustín Bergé for the bug report and the fix. 2014-06-24 00:46:19 +00:00
valarray Use __builtin_operator_new/__builtin_operator_delete when available. This 2014-06-04 19:54:15 +00:00
vector make the same change as in 213546 for vector<bool> 2014-07-21 15:15:15 +00:00