0687adca37noexcept for <typeindex>. This completes Chapter 20 [utilities].
Howard Hinnant
2011-05-28 18:57:24 +0000
0667433587noexcept for <scoped_allocator>.
Howard Hinnant
2011-05-28 18:51:12 +0000
756a1763d1noexcept for <chrono>.
Howard Hinnant
2011-05-28 18:34:36 +0000
603d2c0989noexcept for <functional>.
Howard Hinnant
2011-05-28 17:59:48 +0000
1694d23e23noexcept 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|
Howard Hinnant
2011-05-28 14:41:13 +0000
10f25d2739noexcept for <bitset>.
Howard Hinnant
2011-05-27 20:52:28 +0000
a5e0121b8dnoexcept 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.
Howard Hinnant
2011-05-27 19:08:18 +0000
e9b2c2d669noexcept for <utility>. This included a little repair on pair, and some noexcept workarounds.
Howard Hinnant
2011-05-27 15:04:19 +0000
1e15fd1856Applied noexcept to everything in [diagnostics] (Chapter 19)
Howard Hinnant
2011-05-26 19:48:01 +0000
19ce6a4792Turn on cxx_alias_templates support
Howard Hinnant
2011-05-26 19:07:54 +0000
ed56921d6eApplied noexcept to everything in [language.support] (Chapter 18)
Howard Hinnant
2011-05-26 18:23:59 +0000
4b7a43da34Added [[noreturn]] attribute everywhere it should be
Howard Hinnant
2011-05-26 17:07:32 +0000
ef54251a84Fix const correctness bug in bind involving reference_wrapper found by Jonathan Sauer
Howard Hinnant
2011-05-22 15:07:43 +0000
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.
Howard Hinnant
2011-05-22 00:09:02 +0000
bd89e4b0ddThis 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
Howard Hinnant
2011-05-20 22:02:53 +0000
0148a838d0Simplied bind using __invoke. In the process, found and fixed a couple of bugs. C++11 only.
Howard Hinnant
2011-05-19 19:41:47 +0000
57cff290a4I 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.
Howard Hinnant
2011-05-19 15:05:04 +0000
3dd965bdf9This commit was accidental. Reverting.
Howard Hinnant
2011-05-18 00:47:00 +0000
932209b344A bunch of future tests got invalidated with the latest updates to thread. Fixed the tests.
Howard Hinnant
2011-05-17 23:32:48 +0000
fead2e2de9Fix ambiguity in operator== of scoped_allocator_adaptor.
Howard Hinnant
2011-05-17 20:41:18 +0000
6b9826b2dcFixed bug in recently introduced bind move constructor
Howard Hinnant
2011-05-17 20:27:51 +0000
6cbf9f9b25Fix and beef up test bug for move_if_noexcept
Howard Hinnant
2011-05-17 20:10:42 +0000
97ecd64913Clean up a bunch of warnings in the tests, 3 of which actually turned out to be test bugs.
Howard Hinnant
2011-05-17 19:12:55 +0000
ad935d583dBrought 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.
Howard Hinnant
2011-05-16 19:05:11 +0000
656bdc3667Brought 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.
Howard Hinnant
2011-05-16 18:40:35 +0000
ed22f562e5Supply missing std::qualifier to call.
Howard Hinnant
2011-05-16 16:20:59 +0000
941138f8c9Spit 5th bullet __invoke into function pointers and everything else because result_of doesn't deal with function pointers.
Howard Hinnant
2011-05-16 16:20:21 +0000
496934a803Supply missing move ctor in __bind_r, though this one will eventually be defaulted
Howard Hinnant
2011-05-16 16:19:01 +0000
37c53b6221Redesign of result_of to handle reference-qualified member functions
Howard Hinnant
2011-05-16 16:17:21 +0000
5ec7f5a518Fix type-o found by Justin Hibbits
Howard Hinnant
2011-05-14 18:20:45 +0000
e06b9965adFix type-o found by Justin Hibbits
Howard Hinnant
2011-05-14 17:24:22 +0000
f6cc833ae7Warning suppression in test.
Howard Hinnant
2011-05-14 15:38:08 +0000
783b810caeWarning suppression in test.
Howard Hinnant
2011-05-14 15:36:25 +0000
a5a0ba86c8Warning suppression in test.
Howard Hinnant
2011-05-14 14:53:12 +0000
e80c36e27bCorrection to hexfloat hack.
Howard Hinnant
2011-05-14 14:33:56 +0000
d515df2a50Fix test bug.
Howard Hinnant
2011-05-14 00:07:53 +0000
f1151efcb1Suppress some warings in the tests.
Howard Hinnant
2011-05-14 00:04:05 +0000
2d01bf0665Suppress some warings in the tests.
Howard Hinnant
2011-05-13 23:59:50 +0000
0a111118a6http://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.
Howard Hinnant
2011-05-13 21:52:40 +0000
6063ec176dA much improved type_traits for C++0x. Not yet done: is_trivially_constructible, is_trivially_assignable and underlying_type.
Howard Hinnant
2011-05-13 14:08:16 +0000
0cfa1f7cbdCWG 1170 has been fixed for destructors
Howard Hinnant
2011-05-13 13:39:08 +0000
9e604b442c__is_trivially_copyable now supplied by clang
Sean Hunt
2011-05-13 00:32:09 +0000
d5c2f255c5Corrected misspelling
Howard Hinnant
2011-05-13 00:03:08 +0000
7bbce3c0e7Updated to reflect updated use of existing clang support
Howard Hinnant
2011-05-13 00:01:01 +0000
6b41c6047bCorrected some bugs in both memory and the tests. Preparing for being able to turn on support for alias templates.
Howard Hinnant
2011-05-11 20:21:19 +0000
5d37fb32d2Redid nothrow traits in terms of non-nothrow traits when noexcept is available
Howard Hinnant
2011-05-11 20:19:40 +0000
3666695f0dUpdated type_traits and the type_traits design doc with recent work done in clang.
Howard Hinnant
2011-05-09 19:21:17 +0000
469d419a17Correction to set of overloaded pair constructors for C++0x
Howard Hinnant
2011-04-29 18:10:55 +0000
7ac6af7027Qualify calls to std::next(), to avoid conflicts with libraries/applications that define their own 'next' template.
Douglas Gregor
2011-04-29 16:20:26 +0000
154002bb5dProvide a more readable error message for <atomic> until it is implemented.
Howard Hinnant
2011-03-31 16:39:39 +0000
41fb6e1432Jonathan Sauer found a bug in the way ^ was handled
Howard Hinnant
2011-03-26 20:02:27 +0000
86e78d694cJonathan Sauer updated is_base_of traits status
Howard Hinnant
2011-03-26 19:58:42 +0000
770a3c5116<rdar://problem/9073695> std::uncaught_exception() becomes true before evaluating the throw-expression rather than after
Nick Kledzik
2011-03-11 22:33:07 +0000
d6c08cd1aeTagging 16
Howard Hinnant
2011-03-11 18:16:05 +0000
f9b8998795I 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.
Howard Hinnant
2011-03-10 17:27:30 +0000
6e5e7e78eeCorrected const-correctness on nullptr type_traits, and beefed up the test for nullptr_t.
Howard Hinnant
2011-03-09 17:17:06 +0000
5885da34ceWalter Brown brought to my attention that type_traits was failing to correctly classify nullptr_t
Howard Hinnant
2011-03-09 15:10:51 +0000
80586729e4Chris 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
Howard Hinnant
2011-03-09 01:03:19 +0000
8dcad976e0http://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.
Howard Hinnant
2011-03-03 01:59:23 +0000
fddf722f4eChris Jefferson found this bug to pair/tuple introduced by a recent change to the draft that I missed.
Howard Hinnant
2011-03-01 14:27:55 +0000
171869e27cFix 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.
Howard Hinnant
2011-02-27 20:55:39 +0000
df85e57f4aFixed 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.
Howard Hinnant
2011-02-27 18:02:02 +0000
b2080c70d4Chris 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.
Howard Hinnant
2011-02-25 00:51:08 +0000
5a245dbf52Jean-Daniel Dupas fixes install directions
Howard Hinnant
2011-02-22 14:18:34 +0000