8d75632ad0Reverted to 134947. Once I got into it, I discovered there were too many problems to fix in 135035.
Howard Hinnant
2011-07-13 15:48:16 +0000
c97da3a590Implement the __nolocale functions properly so that they will work on all platforms. Unfortunately a lot of this remains conditionally compiled so as not to break Apple's ABI.
Sean Hunt
2011-07-13 06:40:50 +0000
0389c53f44Make sure that __time_put constructors properly on non-Apple platforms.
Sean Hunt
2011-07-12 00:55:04 +0000
66f2641ac9Toralf Niebuhr: This is just a tiny patch fixing some small (probably copy & paste) errors.
Howard Hinnant
2011-07-09 19:47:01 +0000
2bf1c08510Make vector<bool>::reference and const_reference public
Howard Hinnant
2011-07-09 15:50:42 +0000
6f0342cf2eDon't assume that wctype produces a nice mask on all platforms. On glibc, for instance, it's a const char *.
Sean Hunt
2011-07-09 03:40:04 +0000
e59f724f79Conditionally wrap the changes from r134781.
Sean Hunt
2011-07-09 01:09:31 +0000
62a6ac33a2Implement generalized table lookups for upper, lower, and character traits.
Sean Hunt
2011-07-09 00:56:23 +0000
a2a08b43eetest for pair piecewise construction
Howard Hinnant
2011-06-22 23:51:19 +0000
35d2fcfc8eTeach libc++ about the addressof() overloads it needs to work with Objective-C Automatic Reference Counting, where Objective-C object pointers can have several different qualifiers (__strong, __weak, __autoreleasing, __unsafe_unretained). These addressof() overloads are only provided in ARC mode, and the __weak variant is conditionalized on having weak-reference support in the ARC runtime.
Douglas Gregor
2011-06-22 22:17:44 +0000
f5d76a7afcAdd instructions for -U__STRICT_ANSI__ for Mac OS 10.6
Howard Hinnant
2011-06-22 12:13:55 +0000
7604fea08cMore fixes: One of my fixes to type_traits earlier today was incorrect, so that is reverted. Recently clang appears to have tightened up its definition of is_convertible and that has caused some failures in [unordered_][multi]map. I've switched to using is_constructible to restablish the desired functionality in [unordered_][multi]map. Specifically, inserting rvalues of move-only types for the keys.
Howard Hinnant
2011-06-19 21:45:00 +0000
d4b957820cMiscellaneous minor fixes in <type_traits>
Howard Hinnant
2011-06-19 19:12:59 +0000
2b1b2d40d7Provide names for template and function parameters in forward declarations. The purpose is to aid automated documentation tools.
Howard Hinnant
2011-06-14 19:58:17 +0000
8f5f2563aamore Apple build system tweaks
Nick Kledzik
2011-06-09 23:31:35 +0000
2bdb250fe8libcpp-23.1
Nick Kledzik
2011-06-09 22:18:19 +0000
c7c3891199Update CREDITS.TXT
Howard Hinnant
2011-06-09 16:53:33 +0000
c28dbeee52Move nullptr_t to unversioned namespace: Sean Hunt
Howard Hinnant
2011-06-05 13:00:46 +0000
58cd8231d8noexcept for <stack>. This completes noexcept for Chapter 23 [containers].
Howard Hinnant
2011-06-04 22:09:19 +0000
6a09441022noexcept for <queue>.
Howard Hinnant
2011-06-04 21:32:33 +0000
04dae1df22noexcept for <unordered_set>.
Howard Hinnant
2011-06-04 20:18:37 +0000
5f2f14c5d2noexcept for <unordered_map>.
Howard Hinnant
2011-06-04 18:54:24 +0000
8b53768dacMade more implementation details of [multi]map/set noexcept.
Howard Hinnant
2011-06-04 17:10:24 +0000
b2e2a8f6f3noexcept for <set>. Plus a few fixes to noexcept for <map>.
Howard Hinnant
2011-06-04 15:22:34 +0000
7686add61enoexcept for <map>.
Howard Hinnant
2011-06-04 14:31:57 +0000
d1d27a4afanoexcept for <vector>. This also includes installing move_if_noexcept() into vector.
Howard Hinnant
2011-06-03 19:40:40 +0000
53f7d4cc62Bring noexcept for <string> inline with other containers.
Howard Hinnant
2011-06-03 18:40:47 +0000
c560727d5enoexcept for <list>.
Howard Hinnant
2011-06-03 17:30:28 +0000
b965fed10bnoexcept for <forward_list>.
Howard Hinnant
2011-06-03 16:20:53 +0000
009b2c4583After sleeping on it I've decided that all special members that can be noexcept, should be declared so. The client has the traits to detect and branch on this information, and it is often an important optimization. Give deque() a noexcept. Add test for deque default constructor and deque destructor.
Howard Hinnant
2011-06-03 15:16:49 +0000
93f2764b16Add noexcept tests for deque.
Howard Hinnant
2011-06-03 01:46:22 +0000
18884f4e9fSecond try at getting noexcept on move and swap for deque. I changed std::alloctor to propagate_on_container_move_assignment so as to make deque<T> move assignment noexcept. What we really need is a compile-time switch that says an allocator always compares equal.
Howard Hinnant
2011-06-02 21:38:57 +0000
0a612b0891I've become quite disatsified with the lack of noexcept specifications on container move construction, move assignment operator and swap. Without proper decoration on at least move construction, vectors of containers will have unacceptable performance. Here's the fix for deque.
Howard Hinnant
2011-06-02 20:00:14 +0000
8790cabd86noexcept for forward_list.
Howard Hinnant
2011-06-02 16:44:28 +0000
a12beb35e5noexcept for deque.
Howard Hinnant
2011-06-02 16:10:22 +0000
aabf28721bExperimental 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.
Howard Hinnant
2011-06-01 19:59:32 +0000
d737382dfdTurning on cxx_nullptr exposed a latent bug in is_function, causing nullptr to wrongly classify as a function. Fixed.
Howard Hinnant
2011-06-01 17:25:11 +0000
ad1a5cc5f0minor documentation update
Howard Hinnant
2011-05-29 13:53:56 +0000
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