Howard Hinnant
|
28d55e0745
|
http://llvm.org/bugs/show_bug.cgi?id=10045 . Please review, I have not tested this on linux.
llvm-svn: 132287
|
2011-05-29 13:57:49 +00:00 |
Howard Hinnant
|
af152c8431
|
minor documentation update
llvm-svn: 132286
|
2011-05-29 13:53:56 +00:00 |
Howard Hinnant
|
9e5c99f61f
|
noexcept for <typeindex>. This completes Chapter 20 [utilities].
llvm-svn: 132267
|
2011-05-28 18:57:24 +00:00 |
Howard Hinnant
|
cfd52789dc
|
noexcept for <scoped_allocator>.
llvm-svn: 132266
|
2011-05-28 18:51:12 +00:00 |
Howard Hinnant
|
d53d81522d
|
noexcept for <chrono>.
llvm-svn: 132265
|
2011-05-28 18:34:36 +00:00 |
Howard Hinnant
|
6a07d6f06d
|
noexcept for <functional>.
llvm-svn: 132264
|
2011-05-28 17:59:48 +00:00 |
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 |
Howard Hinnant
|
d368a84c91
|
noexcept for <bitset>.
llvm-svn: 132216
|
2011-05-27 20:52:28 +00:00 |
Howard Hinnant
|
27d0a2a75d
|
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.
llvm-svn: 132204
|
2011-05-27 19:08:18 +00:00 |
Howard Hinnant
|
a676f7d36a
|
noexcept for <utility>. This included a little repair on pair, and some noexcept workarounds.
llvm-svn: 132186
|
2011-05-27 15:04:19 +00:00 |
Howard Hinnant
|
a62f28994c
|
Applied noexcept to everything in [diagnostics] (Chapter 19)
llvm-svn: 132137
|
2011-05-26 19:48:01 +00:00 |
Howard Hinnant
|
411d1bcc3b
|
Turn on cxx_alias_templates support
llvm-svn: 132134
|
2011-05-26 19:07:54 +00:00 |
Howard Hinnant
|
fafca58c58
|
Applied noexcept to everything in [language.support] (Chapter 18)
llvm-svn: 132129
|
2011-05-26 18:23:59 +00:00 |
Howard Hinnant
|
400b244339
|
Added [[noreturn]] attribute everywhere it should be
llvm-svn: 132125
|
2011-05-26 17:07:32 +00:00 |
Nick Kledzik
|
bc6191fba9
|
support another Apple build environment
llvm-svn: 131996
|
2011-05-24 20:27:31 +00:00 |
Nick Kledzik
|
664c0da5d8
|
on Darwin re-export C++0x type infos
llvm-svn: 131995
|
2011-05-24 20:26:04 +00:00 |
Howard Hinnant
|
cf76200bd3
|
http://llvm.org/bugs/show_bug.cgi?id=9399 fixed by Ryuta Suzuki
llvm-svn: 131961
|
2011-05-24 12:54:00 +00:00 |
Howard Hinnant
|
2fa07ae9a0
|
Fix const correctness bug in bind involving reference_wrapper found by Jonathan Sauer
llvm-svn: 131852
|
2011-05-22 15:07:43 +00:00 |
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 |
Howard Hinnant
|
6282a4a1d3
|
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
llvm-svn: 131761
|
2011-05-20 22:02:53 +00:00 |
Howard Hinnant
|
2344d6c195
|
Simplied bind using __invoke. In the process, found and fixed a couple of bugs. C++11 only.
llvm-svn: 131667
|
2011-05-19 19:41:47 +00:00 |
Howard Hinnant
|
ec0810e1c8
|
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.
llvm-svn: 131639
|
2011-05-19 15:05:04 +00:00 |
Howard Hinnant
|
c2bf9e1851
|
This commit was accidental. Reverting.
llvm-svn: 131514
|
2011-05-18 00:47:00 +00:00 |
Howard Hinnant
|
781afe1934
|
A bunch of future tests got invalidated with the latest updates to thread. Fixed the tests.
llvm-svn: 131509
|
2011-05-17 23:32:48 +00:00 |
Howard Hinnant
|
dcaa2e9294
|
Fix ambiguity in operator== of scoped_allocator_adaptor.
llvm-svn: 131485
|
2011-05-17 20:41:18 +00:00 |
Howard Hinnant
|
651fedb82c
|
Fixed bug in recently introduced bind move constructor
llvm-svn: 131484
|
2011-05-17 20:27:51 +00:00 |
Howard Hinnant
|
5fdeee5b3a
|
Fix and beef up test bug for move_if_noexcept
llvm-svn: 131483
|
2011-05-17 20:10:42 +00:00 |
Howard Hinnant
|
fe7e3eeddc
|
Clean up a bunch of warnings in the tests, 3 of which actually turned out to be test bugs.
llvm-svn: 131479
|
2011-05-17 19:12:55 +00:00 |
Howard Hinnant
|
872a91167e
|
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.
llvm-svn: 131414
|
2011-05-16 19:05:11 +00:00 |
Howard Hinnant
|
8df61ea84d
|
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.
llvm-svn: 131413
|
2011-05-16 18:40:35 +00:00 |
Howard Hinnant
|
7735ccaf86
|
Supply missing std::qualifier to call.
llvm-svn: 131410
|
2011-05-16 16:20:59 +00:00 |
Howard Hinnant
|
23fdcd70c6
|
Spit 5th bullet __invoke into function pointers and everything else because result_of doesn't deal with function pointers.
llvm-svn: 131409
|
2011-05-16 16:20:21 +00:00 |
Howard Hinnant
|
07de7bcaa0
|
Supply missing move ctor in __bind_r, though this one will eventually be defaulted
llvm-svn: 131408
|
2011-05-16 16:19:01 +00:00 |
Howard Hinnant
|
15c34d48ba
|
Redesign of result_of to handle reference-qualified member functions
llvm-svn: 131407
|
2011-05-16 16:17:21 +00:00 |
Howard Hinnant
|
b12c37b302
|
Fix type-o found by Justin Hibbits
llvm-svn: 131348
|
2011-05-14 18:20:45 +00:00 |
Howard Hinnant
|
6db38ae05c
|
Fix type-o found by Justin Hibbits
llvm-svn: 131346
|
2011-05-14 17:24:22 +00:00 |
Howard Hinnant
|
af6c26b366
|
Warning suppression in test.
llvm-svn: 131344
|
2011-05-14 15:38:08 +00:00 |
Howard Hinnant
|
3962348edf
|
Warning suppression in test.
llvm-svn: 131343
|
2011-05-14 15:36:25 +00:00 |
Howard Hinnant
|
6c4c6a8047
|
Warning suppression in test.
llvm-svn: 131341
|
2011-05-14 14:53:12 +00:00 |
Howard Hinnant
|
c6b9ff1169
|
Correction to hexfloat hack.
llvm-svn: 131340
|
2011-05-14 14:33:56 +00:00 |
Howard Hinnant
|
e0d67710e9
|
Fix test bug.
llvm-svn: 131328
|
2011-05-14 00:07:53 +00:00 |
Howard Hinnant
|
fe7cffaf57
|
Suppress some warings in the tests.
llvm-svn: 131327
|
2011-05-14 00:04:05 +00:00 |
Howard Hinnant
|
a7fa0710cb
|
Suppress some warings in the tests.
llvm-svn: 131326
|
2011-05-13 23:59:50 +00:00 |
Howard Hinnant
|
fb7f07e3bd
|
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.
llvm-svn: 131318
|
2011-05-13 21:52:40 +00:00 |
Howard Hinnant
|
3e71464d50
|
http://llvm.org/bugs/show_bug.cgi?id=9118
llvm-svn: 131296
|
2011-05-13 17:16:06 +00:00 |
Howard Hinnant
|
467fc38320
|
A much improved type_traits for C++0x. Not yet done: is_trivially_constructible, is_trivially_assignable and underlying_type.
llvm-svn: 131291
|
2011-05-13 14:08:16 +00:00 |
Howard Hinnant
|
5dbf45dfe0
|
CWG 1170 has been fixed for destructors
llvm-svn: 131290
|
2011-05-13 13:39:08 +00:00 |
Alexis Hunt
|
662d91f1cd
|
__is_trivially_copyable now supplied by clang
llvm-svn: 131271
|
2011-05-13 00:32:09 +00:00 |
Howard Hinnant
|
f208605bd4
|
Corrected misspelling
llvm-svn: 131265
|
2011-05-13 00:03:08 +00:00 |
Howard Hinnant
|
b24491b73e
|
Updated to reflect updated use of existing clang support
llvm-svn: 131264
|
2011-05-13 00:01:01 +00:00 |
Howard Hinnant
|
f738497500
|
Corrected some bugs in both memory and the tests. Preparing for being able to turn on support for alias templates.
llvm-svn: 131199
|
2011-05-11 20:21:19 +00:00 |
Howard Hinnant
|
08ad63b580
|
Redid nothrow traits in terms of non-nothrow traits when noexcept is available
llvm-svn: 131198
|
2011-05-11 20:19:40 +00:00 |
Howard Hinnant
|
0cfdb9517e
|
Updated type_traits and the type_traits design doc with recent work done in clang.
llvm-svn: 131090
|
2011-05-09 19:21:17 +00:00 |
Nick Kledzik
|
f9ad245c90
|
change RC_BUILDIT to RC_XBS for detecting Apple build environment
llvm-svn: 130970
|
2011-05-06 01:13:20 +00:00 |
Nick Kledzik
|
7db91cefb2
|
add support for setjmp/longjmp based exceptions
llvm-svn: 130938
|
2011-05-05 18:45:41 +00:00 |
Nick Kledzik
|
de214e29df
|
<rdar://problem/9014045> more support for Apple internal build environments
llvm-svn: 130872
|
2011-05-04 21:50:46 +00:00 |
Howard Hinnant
|
575d41ee92
|
Correction to set of overloaded pair constructors for C++0x
llvm-svn: 130521
|
2011-04-29 18:10:55 +00:00 |
Douglas Gregor
|
6c38001ec5
|
Qualify calls to std::next(), to avoid conflicts with
libraries/applications that define their own 'next' template.
llvm-svn: 130511
|
2011-04-29 16:20:26 +00:00 |
Howard Hinnant
|
9d06c8c326
|
http://llvm.org/bugs/show_bug.cgi?id=9765
llvm-svn: 129910
|
2011-04-21 14:29:59 +00:00 |
Howard Hinnant
|
866d73c7b4
|
Think-o in poisson_distribution at mean == 10
llvm-svn: 129520
|
2011-04-14 15:59:22 +00:00 |
Howard Hinnant
|
a23551cad4
|
Fix bug in Sseq constraints found by Seth Cantrell
llvm-svn: 129285
|
2011-04-11 18:22:12 +00:00 |
Howard Hinnant
|
40dab2ce86
|
http://llvm.org/bugs/show_bug.cgi?id=9672
llvm-svn: 129266
|
2011-04-11 02:18:41 +00:00 |
Howard Hinnant
|
784ba65787
|
Changes to cerrno to protect against the case the ELAST is not defined.
llvm-svn: 129255
|
2011-04-10 19:46:55 +00:00 |
Howard Hinnant
|
1444d85b5a
|
time_get was missing the %F specifier. This change impacts the binary.
llvm-svn: 129251
|
2011-04-10 17:54:14 +00:00 |
Howard Hinnant
|
a9c7c14ebb
|
Chris Jefferson found a missing const (Bugzilla 9632)
llvm-svn: 128885
|
2011-04-05 14:55:28 +00:00 |
Howard Hinnant
|
e4b11156d7
|
Corrected tests for http://llvm.org/bugs/show_bug.cgi?id=9351
llvm-svn: 128807
|
2011-04-04 01:42:30 +00:00 |
Howard Hinnant
|
e4bafbee25
|
... And these wonderful tests.
llvm-svn: 128797
|
2011-04-03 20:06:31 +00:00 |
Howard Hinnant
|
dbe14303da
|
Chris Jefferson submitted this patch to fix http://llvm.org/bugs/show_bug.cgi?id=9351
llvm-svn: 128796
|
2011-04-03 20:05:29 +00:00 |
Howard Hinnant
|
890477f333
|
Provide a more readable error message for <atomic> until it is implemented.
llvm-svn: 128636
|
2011-03-31 16:39:39 +00:00 |
Howard Hinnant
|
382600ff97
|
Jonathan Sauer found a bug in the way ^ was handled
llvm-svn: 128350
|
2011-03-26 20:02:27 +00:00 |
Howard Hinnant
|
8e2617780a
|
Jonathan Sauer updated is_base_of traits status
llvm-svn: 128349
|
2011-03-26 19:58:42 +00:00 |
Nick Kledzik
|
4f8ccdf2f8
|
<rdar://problem/9073695> std::uncaught_exception() becomes true before evaluating the throw-expression rather than after
llvm-svn: 127499
|
2011-03-11 22:33:07 +00:00 |
Howard Hinnant
|
8f934e42d8
|
http://llvm.org/bugs/show_bug.cgi?id=9444
llvm-svn: 127412
|
2011-03-10 17:27:57 +00:00 |
Howard Hinnant
|
8cad46266c
|
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.
llvm-svn: 127411
|
2011-03-10 17:27:30 +00:00 |
Howard Hinnant
|
709b108ae1
|
Corrected const-correctness on nullptr type_traits, and beefed up the test for nullptr_t.
llvm-svn: 127338
|
2011-03-09 17:17:06 +00:00 |
Howard Hinnant
|
d6c80dec76
|
Walter Brown brought to my attention that type_traits was failing to correctly classify nullptr_t
llvm-svn: 127334
|
2011-03-09 15:10:51 +00:00 |
Howard Hinnant
|
f1bf6f9a3a
|
Chris Jefferson found a defect in the C++0x working draft by trying to run libc++ against boost. I've submitted an issue to the LWG, and this commit attempts to implement the proposed resolution of that defect report. I'd point to the issue but it hasn't been put into the LWG list yet. The title of the issue will be: Stage 2 accumulate incompatibilty
llvm-svn: 127303
|
2011-03-09 01:03:19 +00:00 |
Howard Hinnant
|
3145a948d6
|
http://llvm.org/bugs/show_bug.cgi?id=9349 I introduced a bug with the last fix and Ryuta Suzuki has corrected it. And hopefully I committed Ryuta Suzuki's directions correctly this time.
llvm-svn: 126917
|
2011-03-03 01:59:23 +00:00 |
Howard Hinnant
|
01533ed9ad
|
http://llvm.org/bugs/show_bug.cgi?id=9349 I have not personally tested this patch. Please let me know if it causes problems.
llvm-svn: 126846
|
2011-03-02 17:29:46 +00:00 |
Howard Hinnant
|
b5d166ad93
|
Chris Jefferson found this bug to pair/tuple introduced by a recent change to the draft that I missed.
llvm-svn: 126743
|
2011-03-01 14:27:55 +00:00 |
Howard Hinnant
|
99847d2bf1
|
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.
llvm-svn: 126581
|
2011-02-27 20:55:39 +00:00 |
Howard Hinnant
|
73736effce
|
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.
llvm-svn: 126576
|
2011-02-27 18:02:02 +00:00 |
Howard Hinnant
|
a8d8ca4d6f
|
http://llvm.org/bugs/show_bug.cgi?id=9326
llvm-svn: 126504
|
2011-02-25 19:52:41 +00:00 |
Howard Hinnant
|
0c68ed006d
|
Chris Jefferson spotted a problem with messages_base::catalog while getting libc++ to work on boost. The standard says this type must be an int. But this type is the key returned by the OS facility catopen. On OS X the type returned by catopen is void*, which doesn't fit into an int on 64 bit platforms. Chris suggested using ptrdiff_t instead of void*. It still isn't compliant with the standard, but chances are that this change will fix what is ailing boost. Chris also supplied the algorithm for distinguishing high-order pointers from error conditions. Thanks Chris.
llvm-svn: 126462
|
2011-02-25 00:51:08 +00:00 |
Howard Hinnant
|
80a3cadab7
|
Jean-Daniel Dupas fixes install directions
llvm-svn: 126222
|
2011-02-22 14:18:34 +00:00 |
Howard Hinnant
|
1a36219c86
|
Change install name to libc++.1.dylib
llvm-svn: 125626
|
2011-02-16 00:40:06 +00:00 |
Howard Hinnant
|
a0fe8c436e
|
Chris Jefferson noted many places where function calls needed to be qualified (thanks Chris).
llvm-svn: 125510
|
2011-02-14 19:12:38 +00:00 |
Howard Hinnant
|
bd356a8011
|
Update testit to default to clang
llvm-svn: 125498
|
2011-02-14 18:06:10 +00:00 |
Howard Hinnant
|
f190990546
|
fix stupid type-o
llvm-svn: 125311
|
2011-02-10 21:34:42 +00:00 |
Howard Hinnant
|
05033424f9
|
Installed __has_feature(is_convertible_to) and __has_feature(is_base_of)
llvm-svn: 125290
|
2011-02-10 17:46:03 +00:00 |
Howard Hinnant
|
da3b02fdb3
|
Missing traits::to_int_type in fstream
llvm-svn: 124727
|
2011-02-02 17:37:16 +00:00 |
Howard Hinnant
|
72c5e14203
|
Qualify calls to addressof with std::. Bug 9106
llvm-svn: 124726
|
2011-02-02 17:36:20 +00:00 |
Howard Hinnant
|
2774545736
|
Bug 9096 - list::iterator not default constructible
llvm-svn: 124508
|
2011-01-28 23:46:28 +00:00 |
Howard Hinnant
|
d44be13fa8
|
minor corrections to test, and hook is_base_of up to clang intrinsic
llvm-svn: 124502
|
2011-01-28 20:00:37 +00:00 |
Douglas Gregor
|
59f5dc60d2
|
Eliminate extraneous {};
llvm-svn: 124456
|
2011-01-27 23:36:08 +00:00 |
Howard Hinnant
|
e4de279009
|
Updated getting started directions.
llvm-svn: 124452
|
2011-01-27 23:18:19 +00:00 |
Howard Hinnant
|
8d3b8265a6
|
updated buildit to work with recent clang updates
llvm-svn: 124432
|
2011-01-27 21:01:51 +00:00 |
Howard Hinnant
|
80b2905b83
|
clang found a missing return statement.
llvm-svn: 124431
|
2011-01-27 21:01:11 +00:00 |
Howard Hinnant
|
eb92df7e9e
|
Make forward_list splice_after and merge work for lvalue lists
llvm-svn: 124430
|
2011-01-27 21:00:35 +00:00 |
Howard Hinnant
|
7015add232
|
Reverted previous fix to is_convertible as it caused more problems than it fixed. But this reverted fix will only matter for non-clang compilers. Installed __is_convertible_to for clang.
llvm-svn: 124429
|
2011-01-27 21:00:00 +00:00 |