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 |
|
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
|
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
|
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
|
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
|
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 |
|
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
|
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 |
|
Howard Hinnant
|
41fb6e1432
|
Jonathan Sauer found a bug in the way ^ was handled
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@128350 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-03-26 20:02:27 +00:00 |
|
Howard Hinnant
|
d0a2fbfe60
|
http://llvm.org/bugs/show_bug.cgi?id=9444
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@127412 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-03-10 17:27:57 +00:00 |
|
Howard Hinnant
|
f9b8998795
|
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.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@127411 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-03-10 17:27:30 +00:00 |
|
Howard Hinnant
|
6e5e7e78ee
|
Corrected const-correctness on nullptr type_traits, and beefed up the test for nullptr_t.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@127338 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-03-09 17:17:06 +00:00 |
|
Howard Hinnant
|
5885da34ce
|
Walter Brown brought to my attention that type_traits was failing to correctly classify nullptr_t
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@127334 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-03-09 15:10:51 +00:00 |
|