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 |
|
Howard Hinnant
|
f1151efcb1
|
Suppress some warings in the tests.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131327 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-14 00:04:05 +00:00 |
|
Howard Hinnant
|
2d01bf0665
|
Suppress some warings in the tests.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131326 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-13 23:59:50 +00:00 |
|
Howard Hinnant
|
0a111118a6
|
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.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131318 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-13 21:52:40 +00:00 |
|
Howard Hinnant
|
11a58a68e1
|
http://llvm.org/bugs/show_bug.cgi?id=9118
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131296 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-13 17:16:06 +00:00 |
|
Howard Hinnant
|
6063ec176d
|
A much improved type_traits for C++0x. Not yet done: is_trivially_constructible, is_trivially_assignable and underlying_type.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131291 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-13 14:08:16 +00:00 |
|
Howard Hinnant
|
0cfa1f7cbd
|
CWG 1170 has been fixed for destructors
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131290 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-13 13:39:08 +00:00 |
|
Sean Hunt
|
9e604b442c
|
__is_trivially_copyable now supplied by clang
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131271 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-13 00:32:09 +00:00 |
|
Howard Hinnant
|
d5c2f255c5
|
Corrected misspelling
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131265 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-13 00:03:08 +00:00 |
|
Howard Hinnant
|
7bbce3c0e7
|
Updated to reflect updated use of existing clang support
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131264 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-13 00:01:01 +00:00 |
|
Howard Hinnant
|
6b41c6047b
|
Corrected some bugs in both memory and the tests. Preparing for being able to turn on support for alias templates.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131199 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-11 20:21:19 +00:00 |
|
Howard Hinnant
|
5d37fb32d2
|
Redid nothrow traits in terms of non-nothrow traits when noexcept is available
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131198 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-11 20:19:40 +00:00 |
|
Howard Hinnant
|
3666695f0d
|
Updated type_traits and the type_traits design doc with recent work done in clang.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131090 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-09 19:21:17 +00:00 |
|
Nick Kledzik
|
d982028b92
|
change RC_BUILDIT to RC_XBS for detecting Apple build environment
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@130970 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-06 01:13:20 +00:00 |
|
Nick Kledzik
|
ffadfd4c1e
|
add support for setjmp/longjmp based exceptions
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@130938 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-05 18:45:41 +00:00 |
|
Nick Kledzik
|
c6e08d6c44
|
<rdar://problem/9014045> more support for Apple internal build environments
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@130872 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-05-04 21:50:46 +00:00 |
|
Howard Hinnant
|
469d419a17
|
Correction to set of overloaded pair constructors for C++0x
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@130521 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-04-29 18:10:55 +00:00 |
|
Douglas Gregor
|
7ac6af7027
|
Qualify calls to std::next(), to avoid conflicts with
libraries/applications that define their own 'next' template.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@130511 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-04-29 16:20:26 +00:00 |
|
Howard Hinnant
|
e14ea5835e
|
http://llvm.org/bugs/show_bug.cgi?id=9765
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@129910 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-04-21 14:29:59 +00:00 |
|
Howard Hinnant
|
75f7695c62
|
Think-o in poisson_distribution at mean == 10
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@129520 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-04-14 15:59:22 +00:00 |
|
Howard Hinnant
|
ef3b2e2e34
|
Fix bug in Sseq constraints found by Seth Cantrell
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@129285 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-04-11 18:22:12 +00:00 |
|
Howard Hinnant
|
9dbeff919b
|
http://llvm.org/bugs/show_bug.cgi?id=9672
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@129266 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-04-11 02:18:41 +00:00 |
|
Howard Hinnant
|
8c1aa2c24d
|
Changes to cerrno to protect against the case the ELAST is not defined.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@129255 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-04-10 19:46:55 +00:00 |
|
Howard Hinnant
|
506b36487c
|
time_get was missing the %F specifier. This change impacts the binary.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@129251 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-04-10 17:54:14 +00:00 |
|
Howard Hinnant
|
a02851e8a2
|
Chris Jefferson found a missing const (Bugzilla 9632)
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@128885 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-04-05 14:55:28 +00:00 |
|
Howard Hinnant
|
3e93e96dff
|
Corrected tests for http://llvm.org/bugs/show_bug.cgi?id=9351
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@128807 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-04-04 01:42:30 +00:00 |
|
Howard Hinnant
|
b8a03c763a
|
... And these wonderful tests.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@128797 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-04-03 20:06:31 +00:00 |
|
Howard Hinnant
|
d615e47bea
|
Chris Jefferson submitted this patch to fix http://llvm.org/bugs/show_bug.cgi?id=9351
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@128796 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-04-03 20:05:29 +00:00 |
|
Howard Hinnant
|
154002bb5d
|
Provide a more readable error message for <atomic> until it is implemented.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@128636 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-03-31 16:39:39 +00:00 |
|