llvm-project/libcxx/include
Howard Hinnant 3739fe79e5 noexcept for <memory>. I've added a few extension noexcept to: allocator_traits<A>::deallocate, allocaate<T>::deallocate, return_temporary_buffer, and default_delete<T>::operator()(T*) const. My rationale was: If a std-dicated noexcept function needs to call another std-defined function, that called function must be noexcept. We're all a little new to noexcept, so things like this are to be expected. Also included fix for broken __is_swappable trait pointed out by Marc Glisse, thanks Marc|. And fixed a test case for is_nothrow_destructible. Destructors are now noexcept by default|
llvm-svn: 132261
2011-05-28 14:41:13 +00:00
..
ext Qualify calls to addressof with std::. Bug 9106 2011-02-02 17:36:20 +00:00
__bit_reference noexcept for <bitset>. 2011-05-27 20:52:28 +00:00
__config Turn on cxx_alias_templates support 2011-05-26 19:07:54 +00:00
__functional_03 license change 2010-11-16 22:09:02 +00:00
__functional_base This is a simplified (and superior) implementation of __invoke, __invokable and __invoke_of. It is superior in that __invoke now handles reference qualified member functions whereas the previous implementation did not. And it simply has less infrastructure in its implementation. I'm still learning how to program in C++11 (and probably will be for a long time). This change does not impact the behavior we're seeing in http://llvm.org/bugs/show_bug.cgi?id=9975 2011-05-20 22:02:53 +00:00
__functional_base_03 license change 2010-11-16 22:09:02 +00:00
__hash_table Fixed two problems found by Chris Jefferson: Made operator>> for char consistent with gcc. Opened an LWG issue on this one. 2) Renamed some private typedefs which are causing boost grief. 2011-02-27 18:02:02 +00:00
__locale noexcept for <memory>. I've added a few extension noexcept to: allocator_traits<A>::deallocate, allocaate<T>::deallocate, return_temporary_buffer, and default_delete<T>::operator()(T*) const. My rationale was: If a std-dicated noexcept function needs to call another std-defined function, that called function must be noexcept. We're all a little new to noexcept, so things like this are to be expected. Also included fix for broken __is_swappable trait pointed out by Marc Glisse, thanks Marc|. And fixed a test case for is_nothrow_destructible. Destructors are now noexcept by default| 2011-05-28 14:41:13 +00:00
__mutex_base Minor fixup in <ratio> and add optional support for shared_mutex and upgrade_mutex which must be opted into with #define _LIBCPP_SHARED_LOCK 2010-11-28 19:41:07 +00:00
__split_buffer Reverting an old optimization that conflicts with the new allocator model, and causes some test casees to compile that shouldn't. 2011-01-04 19:53:31 +00:00
__sso_allocator license change 2010-11-16 22:09:02 +00:00
__std_stream Chris Jefferson noted many places where function calls needed to be qualified (thanks Chris). 2011-02-14 19:12:38 +00:00
__tree Qualify calls to std::next(), to avoid conflicts with 2011-04-29 16:20:26 +00:00
__tuple noexcept for <tuple>. And in the process learned that I had done it wrong for pair's swap. I needed to create an __is_nothrow_swappable<T>::value trait that was smart enought to answer false when __is_swappable<T>::value is false. Otherwise one gets compile-time errors when using pair or tuple of non-swappable types, even if you never try to swap the pair or tuple. 2011-05-27 19:08:18 +00:00
__tuple_03 license change 2010-11-16 22:09:02 +00:00
algorithm noexcept for <utility>. This included a little repair on pair, and some noexcept workarounds. 2011-05-27 15:04:19 +00:00
array LWG 1191 2010-11-17 19:52:17 +00:00
atomic Provide a more readable error message for <atomic> until it is implemented. 2011-03-31 16:39:39 +00:00
bitset noexcept for <bitset>. 2011-05-27 20:52:28 +00:00
cassert license change 2010-11-16 22:09:02 +00:00
ccomplex license change 2010-11-16 22:09:02 +00:00
cctype license change 2010-11-16 22:09:02 +00:00
cerrno Changes to cerrno to protect against the case the ELAST is not defined. 2011-04-10 19:46:55 +00:00
cfenv license change 2010-11-16 22:09:02 +00:00
cfloat license change 2010-11-16 22:09:02 +00:00
chrono N3191: C++ Timeout Specification 2010-11-20 19:16:30 +00:00
cinttypes Wiped out some non-ascii characters that snuck into the copyright. 2010-05-11 21:36:01 +00:00
ciso646 license change 2010-11-16 22:09:02 +00:00
climits license change 2010-11-16 22:09:02 +00:00
clocale license change 2010-11-16 22:09:02 +00:00
cmath http://llvm.org/bugs/show_bug.cgi?id=9854. Also created an emulated hexfloat literal for use in some of the tests. <sigh> And cleaned up some harmless but irritating warnings in the tests. 2011-05-13 21:52:40 +00:00
codecvt license change 2010-11-16 22:09:02 +00:00
complex LWG 1522 2010-11-18 17:34:48 +00:00
complex.h license change 2010-11-16 22:09:02 +00:00
condition_variable N3191: C++ Timeout Specification 2010-11-20 19:16:30 +00:00
csetjmp license change 2010-11-16 22:09:02 +00:00
csignal license change 2010-11-16 22:09:02 +00:00
cstdarg license change 2010-11-16 22:09:02 +00:00
cstdbool license change 2010-11-16 22:09:02 +00:00
cstddef license change 2010-11-16 22:09:02 +00:00
cstdint license change 2010-11-16 22:09:02 +00:00
cstdio license change 2010-11-16 22:09:02 +00:00
cstdlib license change 2010-11-16 22:09:02 +00:00
cstring Bug 7983 fixed by Bernhard Rosenkraenzer 2010-10-14 17:11:39 +00:00
ctgmath license change 2010-11-16 22:09:02 +00:00
ctime license change 2010-11-16 22:09:02 +00:00
cwchar license change 2010-11-16 22:09:02 +00:00
cwctype license change 2010-11-16 22:09:02 +00:00
deque Qualify calls to std::next(), to avoid conflicts with 2011-04-29 16:20:26 +00:00
exception Applied noexcept to everything in [language.support] (Chapter 18) 2011-05-26 18:23:59 +00:00
forward_list Chris Jefferson noted many places where function calls needed to be qualified (thanks Chris). 2011-02-14 19:12:38 +00:00
fstream Chris Jefferson noted many places where function calls needed to be qualified (thanks Chris). 2011-02-14 19:12:38 +00:00
functional Fix const correctness bug in bind involving reference_wrapper found by Jonathan Sauer 2011-05-22 15:07:43 +00:00
future noexcept for <memory>. I've added a few extension noexcept to: allocator_traits<A>::deallocate, allocaate<T>::deallocate, return_temporary_buffer, and default_delete<T>::operator()(T*) const. My rationale was: If a std-dicated noexcept function needs to call another std-defined function, that called function must be noexcept. We're all a little new to noexcept, so things like this are to be expected. Also included fix for broken __is_swappable trait pointed out by Marc Glisse, thanks Marc|. And fixed a test case for is_nothrow_destructible. Destructors are now noexcept by default| 2011-05-28 14:41:13 +00:00
initializer_list Applied noexcept to everything in [language.support] (Chapter 18) 2011-05-26 18:23:59 +00:00
iomanip license change 2010-11-16 22:09:02 +00:00
ios Effort to reduce the number of exported symbols 2010-12-17 14:46:43 +00:00
iosfwd http://llvm.org/bugs/show_bug.cgi?id=9854. Also created an emulated hexfloat literal for use in some of the tests. <sigh> And cleaned up some harmless but irritating warnings in the tests. 2011-05-13 21:52:40 +00:00
iostream license change 2010-11-16 22:09:02 +00:00
istream Fixed two problems found by Chris Jefferson: Made operator>> for char consistent with gcc. Opened an LWG issue on this one. 2) Renamed some private typedefs which are causing boost grief. 2011-02-27 18:02:02 +00:00
iterator Chris Jefferson noted many places where function calls needed to be qualified (thanks Chris). 2011-02-14 19:12:38 +00:00
limits Applied noexcept to everything in [language.support] (Chapter 18) 2011-05-26 18:23:59 +00:00
list Chris Jefferson noted many places where function calls needed to be qualified (thanks Chris). 2011-02-14 19:12:38 +00:00
locale time_get was missing the %F specifier. This change impacts the binary. 2011-04-10 17:54:14 +00:00
map http://llvm.org/bugs/show_bug.cgi?id=9672 2011-04-11 02:18:41 +00:00
memory noexcept for <memory>. I've added a few extension noexcept to: allocator_traits<A>::deallocate, allocaate<T>::deallocate, return_temporary_buffer, and default_delete<T>::operator()(T*) const. My rationale was: If a std-dicated noexcept function needs to call another std-defined function, that called function must be noexcept. We're all a little new to noexcept, so things like this are to be expected. Also included fix for broken __is_swappable trait pointed out by Marc Glisse, thanks Marc|. And fixed a test case for is_nothrow_destructible. Destructors are now noexcept by default| 2011-05-28 14:41:13 +00:00
mutex I had a giant misunderstanding of what 'synchronizes with' meant in [futures.async]/p5. This invalidated the current design of async in <future>. This is a new design, based on my new understanding, which has been confirmed on the lwg mailing list. The summary is that ~future() (and ~shared_future()) will block when they are created from within async, and the thread hasn't finished yet. As part of this work I created two new type traits: __invokable<F, Args...>::value and __invoke_of<F, Args...>::type. These are what result_of<F(Args...)> wanted to be when it grew up, but never will be. __invoke_of is carefully crafted so that it can serve as its own enable_if (type doesn't exist if the signature isn't invokable). All of this work is C++11 only. 2011-05-19 15:05:04 +00:00
new Applied noexcept to everything in [language.support] (Chapter 18) 2011-05-26 18:23:59 +00:00
numeric license change 2010-11-16 22:09:02 +00:00
ostream Chris Jefferson found a missing const (Bugzilla 9632) 2011-04-05 14:55:28 +00:00
queue license change 2010-11-16 22:09:02 +00:00
random Think-o in poisson_distribution at mean == 10 2011-04-14 15:59:22 +00:00
ratio Minor fixup in <ratio> and add optional support for shared_mutex and upgrade_mutex which must be opted into with #define _LIBCPP_SHARED_LOCK 2010-11-28 19:41:07 +00:00
regex Jonathan Sauer found a bug in the way ^ was handled 2011-03-26 20:02:27 +00:00
scoped_allocator Fix ambiguity in operator== of scoped_allocator_adaptor. 2011-05-17 20:41:18 +00:00
set license change 2010-11-16 22:09:02 +00:00
sstream Chris Jefferson noted many places where function calls needed to be qualified (thanks Chris). 2011-02-14 19:12:38 +00:00
stack license change 2010-11-16 22:09:02 +00:00
stdexcept Applied noexcept to everything in [diagnostics] (Chapter 19) 2011-05-26 19:48:01 +00:00
streambuf license change 2010-11-16 22:09:02 +00:00
string Add always_inline to string move constructors 2011-01-26 00:06:59 +00:00
strstream license change 2010-11-16 22:09:02 +00:00
system_error Applied noexcept to everything in [diagnostics] (Chapter 19) 2011-05-26 19:48:01 +00:00
tgmath.h license change 2010-11-16 22:09:02 +00:00
thread I had a giant misunderstanding of what 'synchronizes with' meant in [futures.async]/p5. This invalidated the current design of async in <future>. This is a new design, based on my new understanding, which has been confirmed on the lwg mailing list. The summary is that ~future() (and ~shared_future()) will block when they are created from within async, and the thread hasn't finished yet. As part of this work I created two new type traits: __invokable<F, Args...>::value and __invoke_of<F, Args...>::type. These are what result_of<F(Args...)> wanted to be when it grew up, but never will be. __invoke_of is carefully crafted so that it can serve as its own enable_if (type doesn't exist if the signature isn't invokable). All of this work is C++11 only. 2011-05-19 15:05:04 +00:00
tuple noexcept for <tuple>. And in the process learned that I had done it wrong for pair's swap. I needed to create an __is_nothrow_swappable<T>::value trait that was smart enought to answer false when __is_swappable<T>::value is false. Otherwise one gets compile-time errors when using pair or tuple of non-swappable types, even if you never try to swap the pair or tuple. 2011-05-27 19:08:18 +00:00
type_traits noexcept for <memory>. I've added a few extension noexcept to: allocator_traits<A>::deallocate, allocaate<T>::deallocate, return_temporary_buffer, and default_delete<T>::operator()(T*) const. My rationale was: If a std-dicated noexcept function needs to call another std-defined function, that called function must be noexcept. We're all a little new to noexcept, so things like this are to be expected. Also included fix for broken __is_swappable trait pointed out by Marc Glisse, thanks Marc|. And fixed a test case for is_nothrow_destructible. Destructors are now noexcept by default| 2011-05-28 14:41:13 +00:00
typeindex license change 2010-11-16 22:09:02 +00:00
typeinfo Applied noexcept to everything in [language.support] (Chapter 18) 2011-05-26 18:23:59 +00:00
unordered_map Qualify calls to addressof with std::. Bug 9106 2011-02-02 17:36:20 +00:00
unordered_set license change 2010-11-16 22:09:02 +00:00
utility noexcept for <tuple>. And in the process learned that I had done it wrong for pair's swap. I needed to create an __is_nothrow_swappable<T>::value trait that was smart enought to answer false when __is_swappable<T>::value is false. Otherwise one gets compile-time errors when using pair or tuple of non-swappable types, even if you never try to swap the pair or tuple. 2011-05-27 19:08:18 +00:00
valarray license change 2010-11-16 22:09:02 +00:00
vector Chris Jefferson noted many places where function calls needed to be qualified (thanks Chris). 2011-02-14 19:12:38 +00:00