Howard Hinnant
|
a12beb35e5
|
noexcept for deque.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@132459 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-06-02 16:10:22 +00:00 |
|
Howard Hinnant
|
aabf28721b
|
Experimental support for a meaningful __is_swappable<T>::value. This does not appear to be strictly needed for correct functioning of the library. If it causes any problems, I'd rather pull it sooner rather than later.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@132421 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-06-01 19:59:32 +00:00 |
|
Howard Hinnant
|
d737382dfd
|
Turning on cxx_nullptr exposed a latent bug in is_function, causing nullptr to wrongly classify as a function. Fixed.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@132406 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-06-01 17:25:11 +00:00 |
|
Howard Hinnant
|
083ba5f5ca
|
I've seen this question enough times to know that it should be fixed: http://stackoverflow.com/questions/6193734/implicit-conversions-with-stdfunction
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@132363 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-31 21:45:26 +00:00 |
|
Howard Hinnant
|
f0562af9dd
|
noexcept for <array>.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@132359 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-31 21:06:33 +00:00 |
|
Howard Hinnant
|
20eda8b563
|
Upgrade <ratio> to use template aliases when available.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@132342 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-31 16:55:36 +00:00 |
|
Howard Hinnant
|
c983454d30
|
noexcept for Chapter 22 [localization].
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@132337 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-31 15:34:58 +00:00 |
|
Howard Hinnant
|
c26fd8061e
|
Add _ATTRIBUTE macro for gcc: Justin Hibbits
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@132334 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-31 13:13:49 +00:00 |
|
Howard Hinnant
|
a6119a86c5
|
noexcept for Chapter 21 [strings].
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@132296 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-29 19:57:12 +00:00 |
|
Howard Hinnant
|
d5fed03778
|
http://llvm.org/bugs/show_bug.cgi?id=10045 . Please review, I have not tested this on linux.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@132287 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-29 13:57:49 +00:00 |
|
Howard Hinnant
|
ad1a5cc5f0
|
minor documentation update
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@132286 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-29 13:53:56 +00:00 |
|
Howard Hinnant
|
0687adca37
|
noexcept for <typeindex>. This completes Chapter 20 [utilities].
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@132267 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-28 18:57:24 +00:00 |
|
Howard Hinnant
|
0667433587
|
noexcept for <scoped_allocator>.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@132266 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-28 18:51:12 +00:00 |
|
Howard Hinnant
|
756a1763d1
|
noexcept for <chrono>.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@132265 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-28 18:34:36 +00:00 |
|
Howard Hinnant
|
603d2c0989
|
noexcept for <functional>.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@132264 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-28 17:59:48 +00:00 |
|
Howard Hinnant
|
1694d23e23
|
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|
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@132261 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-28 14:41:13 +00:00 |
|
Howard Hinnant
|
10f25d2739
|
noexcept for <bitset>.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@132216 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-27 20:52:28 +00:00 |
|
Howard Hinnant
|
a5e0121b8d
|
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.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@132204 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-27 19:08:18 +00:00 |
|
Howard Hinnant
|
e9b2c2d669
|
noexcept for <utility>. This included a little repair on pair, and some noexcept workarounds.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@132186 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-27 15:04:19 +00:00 |
|
Howard Hinnant
|
1e15fd1856
|
Applied noexcept to everything in [diagnostics] (Chapter 19)
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@132137 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-26 19:48:01 +00:00 |
|
Howard Hinnant
|
19ce6a4792
|
Turn on cxx_alias_templates support
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@132134 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-26 19:07:54 +00:00 |
|
Howard Hinnant
|
ed56921d6e
|
Applied noexcept to everything in [language.support] (Chapter 18)
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@132129 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-26 18:23:59 +00:00 |
|
Howard Hinnant
|
4b7a43da34
|
Added [[noreturn]] attribute everywhere it should be
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@132125 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-26 17:07:32 +00:00 |
|
Nick Kledzik
|
8feadca3fa
|
support another Apple build environment
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131996 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-24 20:27:31 +00:00 |
|
Nick Kledzik
|
1122fec973
|
on Darwin re-export C++0x type infos
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131995 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-24 20:26:04 +00:00 |
|
Howard Hinnant
|
20542c0b94
|
http://llvm.org/bugs/show_bug.cgi?id=9399 fixed by Ryuta Suzuki
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131961 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-24 12:54:00 +00:00 |
|
Howard Hinnant
|
ef54251a84
|
Fix const correctness bug in bind involving reference_wrapper found by Jonathan Sauer
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131852 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-22 15:07:43 +00:00 |
|
Howard Hinnant
|
e003ce4899
|
__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.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131818 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-22 00:09:02 +00:00 |
|
Howard Hinnant
|
bd89e4b0dd
|
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
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131761 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-20 22:02:53 +00:00 |
|
Howard Hinnant
|
0148a838d0
|
Simplied bind using __invoke. In the process, found and fixed a couple of bugs. C++11 only.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131667 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-19 19:41:47 +00:00 |
|
Howard Hinnant
|
57cff290a4
|
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.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131639 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-19 15:05:04 +00:00 |
|
Howard Hinnant
|
3dd965bdf9
|
This commit was accidental. Reverting.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131514 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-18 00:47:00 +00:00 |
|
Howard Hinnant
|
932209b344
|
A bunch of future tests got invalidated with the latest updates to thread. Fixed the tests.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131509 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-17 23:32:48 +00:00 |
|
Howard Hinnant
|
fead2e2de9
|
Fix ambiguity in operator== of scoped_allocator_adaptor.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131485 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-17 20:41:18 +00:00 |
|
Howard Hinnant
|
6b9826b2dc
|
Fixed bug in recently introduced bind move constructor
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131484 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-17 20:27:51 +00:00 |
|
Howard Hinnant
|
6cbf9f9b25
|
Fix and beef up test bug for move_if_noexcept
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131483 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-17 20:10:42 +00:00 |
|
Howard Hinnant
|
97ecd64913
|
Clean up a bunch of warnings in the tests, 3 of which actually turned out to be test bugs.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131479 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-17 19:12:55 +00:00 |
|
Howard Hinnant
|
ad935d583d
|
Brought call_once variadic call up to current spec, which allows move-only functors and move-only arguments, but disallows functors with non-const lvalue reference parameters.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131414 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-16 19:05:11 +00:00 |
|
Howard Hinnant
|
656bdc3667
|
Brought thread variadic constructor up to current spec, which allows move-only functors and move-only arguments, but disallows functors with non-const lvalue reference parameters.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131413 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-16 18:40:35 +00:00 |
|
Howard Hinnant
|
ed22f562e5
|
Supply missing std::qualifier to call.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131410 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-16 16:20:59 +00:00 |
|
Howard Hinnant
|
941138f8c9
|
Spit 5th bullet __invoke into function pointers and everything else because result_of doesn't deal with function pointers.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131409 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-16 16:20:21 +00:00 |
|
Howard Hinnant
|
496934a803
|
Supply missing move ctor in __bind_r, though this one will eventually be defaulted
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131408 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-16 16:19:01 +00:00 |
|
Howard Hinnant
|
37c53b6221
|
Redesign of result_of to handle reference-qualified member functions
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131407 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-16 16:17:21 +00:00 |
|
Howard Hinnant
|
5ec7f5a518
|
Fix type-o found by Justin Hibbits
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131348 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-14 18:20:45 +00:00 |
|
Howard Hinnant
|
e06b9965ad
|
Fix type-o found by Justin Hibbits
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131346 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-14 17:24:22 +00:00 |
|
Howard Hinnant
|
f6cc833ae7
|
Warning suppression in test.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131344 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-14 15:38:08 +00:00 |
|
Howard Hinnant
|
783b810cae
|
Warning suppression in test.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131343 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-14 15:36:25 +00:00 |
|
Howard Hinnant
|
a5a0ba86c8
|
Warning suppression in test.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131341 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-14 14:53:12 +00:00 |
|
Howard Hinnant
|
e80c36e27b
|
Correction to hexfloat hack.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131340 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-14 14:33:56 +00:00 |
|
Howard Hinnant
|
d515df2a50
|
Fix test bug.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131328 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-14 00:07:53 +00:00 |
|