ad1a5cc5f0minor documentation update
Howard Hinnant
2011-05-29 13:53:56 +00:00
0687adca37noexcept for <typeindex>. This completes Chapter 20 [utilities].
Howard Hinnant
2011-05-28 18:57:24 +00:00
0667433587noexcept for <scoped_allocator>.
Howard Hinnant
2011-05-28 18:51:12 +00:00
756a1763d1noexcept for <chrono>.
Howard Hinnant
2011-05-28 18:34:36 +00:00
603d2c0989noexcept for <functional>.
Howard Hinnant
2011-05-28 17:59:48 +00:00
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 +00:00
10f25d2739noexcept for <bitset>.
Howard Hinnant
2011-05-27 20:52:28 +00:00
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 +00:00
e9b2c2d669noexcept for <utility>. This included a little repair on pair, and some noexcept workarounds.
Howard Hinnant
2011-05-27 15:04:19 +00:00
1e15fd1856Applied noexcept to everything in [diagnostics] (Chapter 19)
Howard Hinnant
2011-05-26 19:48:01 +00:00
19ce6a4792Turn on cxx_alias_templates support
Howard Hinnant
2011-05-26 19:07:54 +00:00
ed56921d6eApplied noexcept to everything in [language.support] (Chapter 18)
Howard Hinnant
2011-05-26 18:23:59 +00:00
4b7a43da34Added [[noreturn]] attribute everywhere it should be
Howard Hinnant
2011-05-26 17:07:32 +00:00
ef54251a84Fix const correctness bug in bind involving reference_wrapper found by Jonathan Sauer
Howard Hinnant
2011-05-22 15:07:43 +00:00
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 +00:00
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 +00:00
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 +00:00
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 +00:00
3dd965bdf9This commit was accidental. Reverting.
Howard Hinnant
2011-05-18 00:47:00 +00:00
932209b344A bunch of future tests got invalidated with the latest updates to thread. Fixed the tests.
Howard Hinnant
2011-05-17 23:32:48 +00:00
fead2e2de9Fix ambiguity in operator== of scoped_allocator_adaptor.
Howard Hinnant
2011-05-17 20:41:18 +00:00
6b9826b2dcFixed bug in recently introduced bind move constructor
Howard Hinnant
2011-05-17 20:27:51 +00:00
6cbf9f9b25Fix and beef up test bug for move_if_noexcept
Howard Hinnant
2011-05-17 20:10:42 +00:00
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 +00:00
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 +00:00
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 +00:00
ed22f562e5Supply missing std::qualifier to call.
Howard Hinnant
2011-05-16 16:20:59 +00:00
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 +00:00
496934a803Supply missing move ctor in __bind_r, though this one will eventually be defaulted
Howard Hinnant
2011-05-16 16:19:01 +00:00
37c53b6221Redesign of result_of to handle reference-qualified member functions
Howard Hinnant
2011-05-16 16:17:21 +00:00
5ec7f5a518Fix type-o found by Justin Hibbits
Howard Hinnant
2011-05-14 18:20:45 +00:00
e06b9965adFix type-o found by Justin Hibbits
Howard Hinnant
2011-05-14 17:24:22 +00:00
f6cc833ae7Warning suppression in test.
Howard Hinnant
2011-05-14 15:38:08 +00:00
783b810caeWarning suppression in test.
Howard Hinnant
2011-05-14 15:36:25 +00:00
a5a0ba86c8Warning suppression in test.
Howard Hinnant
2011-05-14 14:53:12 +00:00
e80c36e27bCorrection to hexfloat hack.
Howard Hinnant
2011-05-14 14:33:56 +00:00
d515df2a50Fix test bug.
Howard Hinnant
2011-05-14 00:07:53 +00:00
f1151efcb1Suppress some warings in the tests.
Howard Hinnant
2011-05-14 00:04:05 +00:00
2d01bf0665Suppress some warings in the tests.
Howard Hinnant
2011-05-13 23:59:50 +00:00
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 +00:00
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 +00:00
0cfa1f7cbdCWG 1170 has been fixed for destructors
Howard Hinnant
2011-05-13 13:39:08 +00:00
9e604b442c__is_trivially_copyable now supplied by clang
Sean Hunt
2011-05-13 00:32:09 +00:00
d5c2f255c5Corrected misspelling
Howard Hinnant
2011-05-13 00:03:08 +00:00
7bbce3c0e7Updated to reflect updated use of existing clang support
Howard Hinnant
2011-05-13 00:01:01 +00:00
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 +00:00
5d37fb32d2Redid nothrow traits in terms of non-nothrow traits when noexcept is available
Howard Hinnant
2011-05-11 20:19:40 +00:00
3666695f0dUpdated type_traits and the type_traits design doc with recent work done in clang.
Howard Hinnant
2011-05-09 19:21:17 +00:00