llvm-project/libcxx/include
Howard Hinnant 5eb6bdfa1d __invokable and __invoke_of now check for incomplete types and issue a compile-time diagnostic if they are used with incomplete types for anything except a return type. Note that both arguments *and* parameters are checked for completeness.
llvm-svn: 131818
2011-05-22 00:09:02 +00:00
..
ext Qualify calls to addressof with std::. Bug 9106 2011-02-02 17:36:20 +00:00
__bit_reference license change 2010-11-16 22:09:02 +00:00
__config http://llvm.org/bugs/show_bug.cgi?id=9118 2011-05-13 17:16:06 +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 Effort to reduce the number of exported symbols 2010-12-17 14:46:43 +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 I have to revert this recent fix to tuple conversions until clang implements cwg 1170. Without this fix pair and tuple don't convert properly. With it, associative containers get access errors when they shouldn't. cwg 1170 fixes the latter. 2011-03-10 17:27:30 +00:00
__tuple_03 license change 2010-11-16 22:09:02 +00:00
algorithm Fix copy_n to increment only n-1 times for an input iterator. This works much better with std::istream_iterator<int>(std::cin). Credit: Matan Nassau. 2011-02-27 20:55:39 +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 LWG 1325 2010-11-17 21:53:14 +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 N3189 Observers for the three handler functions 2010-12-02 16:45:21 +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 Simplied bind using __invoke. In the process, found and fixed a couple of bugs. C++11 only. 2011-05-19 19:41:47 +00:00
future 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
initializer_list license change 2010-11-16 22:09:02 +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 license change 2010-11-16 22:09:02 +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 __invokable and __invoke_of now check for incomplete types and issue a compile-time diagnostic if they are used with incomplete types for anything except a return type. Note that both arguments *and* parameters are checked for completeness. 2011-05-22 00:09:02 +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 N3189 Observers for the three handler functions 2010-12-02 16:45:21 +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 license change 2010-11-16 22:09:02 +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 license change 2010-11-16 22:09:02 +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 tweak for readability (no functionality change) 2011-01-25 16:31:30 +00:00
type_traits __invokable and __invoke_of now check for incomplete types and issue a compile-time diagnostic if they are used with incomplete types for anything except a return type. Note that both arguments *and* parameters are checked for completeness. 2011-05-22 00:09:02 +00:00
typeindex license change 2010-11-16 22:09:02 +00:00
typeinfo license change 2010-11-16 22:09:02 +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 Correction to set of overloaded pair constructors for C++0x 2011-04-29 18:10:55 +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