Commit Graph

95 Commits

Author SHA1 Message Date
Eric Fiselier 58ff77c2e0 Mark LWG issue 2545 as complete. Add extra tests
llvm-svn: 271489
2016-06-02 05:44:14 +00:00
Eric Fiselier 9b903af3e9 Mark LWG issue 2218 as complete.
LWG issue 2218 relaxes a restriction on how containers can call
Alloc::construct(...) and Alloc::destroy(...). There is nothing new to test.

llvm-svn: 271477
2016-06-02 04:13:41 +00:00
Eric Fiselier 91ae4a078b Mark LWG issue 2336 as complete. There is nothing to do.
llvm-svn: 271476
2016-06-02 04:08:03 +00:00
Eric Fiselier 4efa1ad561 Mark LWG issue 2250 as complete
llvm-svn: 271475
2016-06-02 04:03:31 +00:00
Eric Fiselier d697ee41bc Mark LWG issue 2450 as complete.
llvm-svn: 271473
2016-06-02 03:12:44 +00:00
Eric Fiselier 5725756791 Add C++17 std::not_fn negator.
Summary:
Exactly what it sounds like.

I plan to commit this in a couple of days assuming no objections.

Reviewers: mclow.lists, EricWF

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D20799

llvm-svn: 271464
2016-06-02 01:25:41 +00:00
Eric Fiselier 88f5bfdc5b Implement P0033R1 - Re-enabling shared_from_this
Summary: See http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0033r1.html

Reviewers: mclow.lists

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D19254

llvm-svn: 271449
2016-06-02 00:15:35 +00:00
Eric Fiselier 7939ae5e08 Mark LWG issue 2520 as complete
llvm-svn: 271249
2016-05-31 04:27:57 +00:00
Eric Fiselier 5362bbb02a Mark LWG issue 2276 as complete. Add _LIBCPP_ASSERTS for it
llvm-svn: 271247
2016-05-31 01:50:55 +00:00
Eric Fiselier 3bdbb10a48 Mark LWG issue 2537 as complete
llvm-svn: 271241
2016-05-31 01:11:20 +00:00
Eric Fiselier 0ddc14c256 Mark LWG issue #2585 as complete
llvm-svn: 271240
2016-05-31 01:03:07 +00:00
Eric Fiselier 4c46801fa7 Mark LWG issue 2565 as complete. Update the tests to check it.
llvm-svn: 271238
2016-05-31 00:23:31 +00:00
Eric Fiselier 928431af53 Mark LWG issue #2522 as complete
llvm-svn: 271231
2016-05-30 21:30:46 +00:00
Marshall Clow 2dd562e3d9 Mark LWG2583 as complete. I did this a while ago, and forgot to update the table.
llvm-svn: 269973
2016-05-18 19:31:01 +00:00
Marshall Clow bc6a7df072 Implement LWG2576: istream_iterator and ostream_iterator should use std::addressof
llvm-svn: 269789
2016-05-17 17:44:40 +00:00
Marshall Clow 4328c2bac8 Implement P0030R1: Introduce a 3-Argument Overload to std::hypot
llvm-svn: 269772
2016-05-17 14:52:19 +00:00
Eric Fiselier 906c50859b Fix LWG issue #2106: move_iterators returning prvalues
llvm-svn: 267091
2016-04-22 00:49:12 +00:00
Eric Fiselier d513ad88d5 Complete LWG issue #2016. Allocators must be nothrow swappable
llvm-svn: 267085
2016-04-22 00:15:18 +00:00
Eric Fiselier f07dd8d0a9 Add is_swappable/is_nothrow_swappable traits
llvm-svn: 267079
2016-04-21 23:38:59 +00:00
Eric Fiselier 840fa745ca Add 'is_callable' and 'is_nothrow_callable' traits and cleanup INVOKE.
The primary purpose of this patch is to add the 'is_callable' traits.
Since 'is_nothrow_callable' required making 'INVOKE' conditionally noexcept
I also took this oppertunity to implement a constexpr version of INVOKE.
This fixes 'std::experimental::apply' which required constexpr 'INVOKE support'.

This patch will be followed up with some cleanup. Primarly removing most
of "__member_function_traits" since it's no longer used by INVOKE (in C++11 at least).

llvm-svn: 266836
2016-04-20 00:14:32 +00:00
Eric Fiselier cf6bbd3909 Mark P0152R1 as complete.
llvm-svn: 266592
2016-04-18 06:58:50 +00:00
Eric Fiselier 87c4104d30 Mark LWG issue 2469 as done. Also simplify try_emplace and insert_or_assign implementations in unordered_map
llvm-svn: 266591
2016-04-18 06:51:33 +00:00
Eric Fiselier 2152fd7682 Implement LWG issue 2219 - support reference_wrapper in INVOKE
llvm-svn: 266590
2016-04-18 06:17:30 +00:00
Eric Fiselier df691e18f3 Add hash specializations for __int128_t. Fixes LWG issue 2119
llvm-svn: 266587
2016-04-18 02:54:00 +00:00
Eric Fiselier 40fde4d33e Add tests for LWG issue 2361
llvm-svn: 266586
2016-04-18 02:31:05 +00:00
Eric Fiselier 7a9f500fcb Fix LWG issue 2345 - Add insert(value_type&&)
llvm-svn: 266585
2016-04-18 01:40:45 +00:00
Eric Fiselier a58d430cac Make std::addressof constexpr in C++17 (Clang only).
llvm-svn: 263688
2016-03-17 03:30:56 +00:00
Marshall Clow 0b54e792b7 Implement LWG2577: {shared,unique}_lock</tt> should use std::addressof
llvm-svn: 263506
2016-03-14 23:07:32 +00:00
Marshall Clow c1fe2c4329 Implement LWG#2566: Requirements on the first template parameter of container adaptors
llvm-svn: 263450
2016-03-14 17:58:11 +00:00
Nico Weber 47c3a4743e Revert r263036, it's ABI-breaking.
llvm-svn: 263246
2016-03-11 15:26:06 +00:00
Marshall Clow ef13c522b4 Update status to mark 2579 complete
llvm-svn: 263043
2016-03-09 18:09:07 +00:00
Marshall Clow e96f8b52d9 Implement LWG#2583: There is no way to supply an allocator for basic_string(str, pos)
llvm-svn: 263036
2016-03-09 17:51:43 +00:00
Marshall Clow dd1729fe8a Implement P0272R1: Give 'std::string' a non-const '.data()' member function
llvm-svn: 262931
2016-03-08 15:44:30 +00:00
Marshall Clow 28cc4dde49 Implement P0253R1: Fixing a design mistake in the searchers interface.
llvm-svn: 262928
2016-03-08 15:12:52 +00:00
Marshall Clow 146c14ac33 Implement P0025R0: 'An algorithm to clamp a value between a pair of boundary values' for C++17
llvm-svn: 262871
2016-03-07 22:43:49 +00:00
Marshall Clow 4b5d4fde68 Update with work items passed in Jacksonville
llvm-svn: 262807
2016-03-06 17:45:24 +00:00
Marshall Clow 21dc2c25e7 Update the status of a N4089 and a couple issues
llvm-svn: 261896
2016-02-25 16:55:58 +00:00
Marshall Clow 0aa1ccb0d9 Implement LWG#2385; remove the allocator-aware std::function::assign call. It was useless, and didn't actually *do anything* with the allocator. Now it's gone. On the off chance that someone is mistakenly calling it, it's only gone in C++1z
llvm-svn: 258697
2016-01-25 17:29:55 +00:00
Marshall Clow fcdb19904c Implement LWG#2101 'Some transformation types can produce impossible types' Introduced a new (internal) type trait '__is_referenceable' with tests. Use that trait in add_lvalue_reference, add_rvalue_reference and add_pointer.
llvm-svn: 258418
2016-01-21 18:22:43 +00:00
Eric Fiselier ad41a2f480 Mark LWG defect #2367 as complete
llvm-svn: 256597
2015-12-29 23:18:27 +00:00
Eric Fiselier 545b8861fc [libcxx] LWG2485: get() should be overloaded for const tuple&&. Patch from K-Ballo.
Review: http://reviews.llvm.org/D14839
llvm-svn: 255941
2015-12-18 00:36:55 +00:00
Marshall Clow b8427293df Last bit of P0006; mark it as complete
llvm-svn: 254290
2015-11-30 05:39:30 +00:00
Marshall Clow dbd2d32892 Implement P0007: Constant View: A proposal for a std::as_const helper function template.
llvm-svn: 253274
2015-11-17 00:08:08 +00:00
Marshall Clow a9197737f9 LWG#2156 loosened the requirements on unordered containers 'rehash' calls. Add tests to make sure we meet these requirements. Since we met the stricter ones, no code change needed to meet the looser ones.
llvm-svn: 253223
2015-11-16 16:42:16 +00:00
Marshall Clow dd1b261f3a Implement P0013R1: Logical Operator Type Traits. Make a hidden implementation (__and_, __or_, and __not_) so that we can use them elsewhere in non-C++17 code - for example, in the LFTS
llvm-svn: 253215
2015-11-16 15:54:13 +00:00
Marshall Clow 7d5264fa44 Mark P0013 as 'in progress'
llvm-svn: 253212
2015-11-16 15:05:09 +00:00
Marshall Clow 183c010c9a Implement P0074: Making owner_less more flexible
llvm-svn: 252905
2015-11-12 15:56:44 +00:00
Marshall Clow 8f8cdf34ac Mark LWG#2486 as complete. Eric did this as part of r242959
llvm-svn: 252509
2015-11-09 20:49:15 +00:00
Marshall Clow 33adf230a7 Mark LWG#2224 as complete. Wording change only, no code changes required
llvm-svn: 252408
2015-11-07 17:56:51 +00:00
Marshall Clow e5f1288fa0 Implement LWG#2353: std::next is over-constrained
llvm-svn: 252407
2015-11-07 17:48:49 +00:00