Marshall Clow
baf27df0bf
Updated C++1Z status page with new work from Oulu WG21 meeting
...
llvm-svn: 274016
2016-06-28 14:11:54 +00:00
Marshall Clow
3044c34c45
Fix bad link for P0006
...
llvm-svn: 273861
2016-06-27 11:14:34 +00:00
Eric Fiselier
555330719a
Implement LWG 2488 - Make the placeholders constexpr.
...
This patch makes the bind placeholders in std::placeholders both (1) const and
(2) constexpr (See below).
This is technically a breaking change for any code using the placeholders
outside of std::bind and depending on them being non-const. However I don't
think this will break any real world code.
(1) Previously the placeholders were non-const extern globals in all
dialects. This patch changes these extern globals to be const in all dialects.
Since the cv-qualifiers don't participate in name mangling for globals this
is an ABI compatible change.
(2) Make the placeholders constexpr in C++11 and beyond. Although LWG 2488 only
applies to C++17 I don't see any reason not to backport this change.
llvm-svn: 273824
2016-06-26 21:01:34 +00:00
Eric Fiselier
be13be47ba
Implement LWG issue 1169. num_get not fully compatible with strto*
...
Use strtof and strtod for floats and doubles respectively instead of
always using strtold. The other parts of the change are already implemented
in libc++.
This patch also has a drive by fix to wbuffer_convert::underflow() which
prevents it from calling memmove(buff, null, 0).
llvm-svn: 273106
2016-06-19 06:58:22 +00:00
Eric Fiselier
48f35e074e
Implement variadic lock_guard.
...
Summary:
This patch implements the variadic `lock_guard` paper.
Making `lock_guard` variadic is a ABI breaking change because the specialization `lock_guard<_Mutex>` mangles differently then when it was the primary template. This change only provides variadic `lock_guard` in ABI V2 or when `_LIBCPP_ABI_VARIADIC_LOCK_GUARD` is defined.
Note that in ABI V2 `lock_guard` must always be declared as a variadic template, even in C++03, in order to keep the ABI consistent. For this reason `lock_guard` is forward declared as a variadic template in all standard dialects and therefore depends on variadic templates being provided as an extension in C++03. All supported versions of Clang and GCC provide this extension.
Reviewers: mclow.lists
Subscribers: K-ballo, mclow.lists, cfe-commits
Differential Revision: http://reviews.llvm.org/D21260
llvm-svn: 272634
2016-06-14 03:48:09 +00:00
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
Marshall Clow
6a11b039d9
Mark LWG issue #2234 . We already do this; no code change needed
...
llvm-svn: 252199
2015-11-05 19:57:50 +00:00
Marshall Clow
2cd0d6d625
Implement P0092R1 for C++1z
...
llvm-svn: 252195
2015-11-05 19:33:59 +00:00
Marshall Clow
131733bcf0
Implement P0004R1 'Remove Deprecated iostreams aliases'
...
llvm-svn: 251618
2015-10-29 05:43:30 +00:00
Marshall Clow
fe44b10735
Mark two Kona papers as 'in progress'
...
llvm-svn: 251545
2015-10-28 19:21:40 +00:00
Marshall Clow
10a6e70408
Mark LWG#2495 as complete. No code changes needed
...
llvm-svn: 251258
2015-10-25 20:12:58 +00:00
Marshall Clow
3b72a6ef63
Fix LWG#2489: mem_fn() should be noexcept
...
llvm-svn: 251257
2015-10-25 20:12:16 +00:00
Marshall Clow
b631c24359
Add a test for LWG#2466: allocator_traits::max_size() default behavior is incorrect
...
llvm-svn: 251252
2015-10-25 19:34:04 +00:00
Marshall Clow
2603b0758d
Fix LWG#2127: Move-construction with raw_storage_iterator.
...
llvm-svn: 251247
2015-10-25 18:58:07 +00:00
Marshall Clow
9be5356452
Fix LWG#2244: basic_istream::seekg
...
llvm-svn: 251246
2015-10-25 18:31:51 +00:00
Marshall Clow
5753adb810
Update C++ status from Kona
...
llvm-svn: 251220
2015-10-25 06:02:23 +00:00
Marshall Clow
8428a9d5b6
Implement LWG#2063, and update the issues links to point to the github generated pages
...
llvm-svn: 249325
2015-10-05 16:17:34 +00:00
Tanya Lattner
29f6af3657
Update references to lists.llvm.org
...
llvm-svn: 244003
2015-08-05 03:59:14 +00:00
Eric Fiselier
5be45129a4
Implement n4169 - Add invoke function template
...
llvm-svn: 242195
2015-07-14 20:16:15 +00:00
Marshall Clow
f69606b117
Mark LWG2308 as complete; fix link. No code change necessary.
...
llvm-svn: 242189
2015-07-14 20:07:45 +00:00
Marshall Clow
bc4c89a977
The rest of N4279 and LWG#2464 - for unordered_map
...
llvm-svn: 241555
2015-07-07 05:45:35 +00:00
Marshall Clow
3505fba35a
Mark LWG#2420 as complete. Eric did this in r228705.
...
llvm-svn: 241491
2015-07-06 19:36:44 +00:00
Marshall Clow
b138ae7cac
Mark N4508, LWG#2407, and LWG#2470 as complete. I don't see that 2470 requires any changes to the library.
...
llvm-svn: 241111
2015-06-30 20:06:00 +00:00
Marshall Clow
c9c86ca0a2
Mark LWG#2266 as complete. This is a tightening up the wording; no code changes required.
...
llvm-svn: 241064
2015-06-30 13:32:08 +00:00
Marshall Clow
a70d27f080
Mark LWG#2439 as complete. This is a tightening up the wording; no code changes required.
...
llvm-svn: 241013
2015-06-29 22:27:30 +00:00
Marshall Clow
052085e6e0
Mark a couple of features as 'in progress'
...
llvm-svn: 240456
2015-06-23 20:48:55 +00:00
Eric Fiselier
793f59e767
LWG2442: call_once() shouldn't DECAY_COPY(). Patch from K-Ballo.
...
This patch fixes LWG issue 2422 by removing the DECAY_COPY from call once.
The review can be found here: http://reviews.llvm.org/D10191
llvm-svn: 239654
2015-06-13 02:23:00 +00:00
Marshall Clow
31a4731370
Implement the first part of N4258 - allocator_traits<X>::is_always_equal. Also fixes PR#23723
...
llvm-svn: 238848
2015-06-02 16:34:03 +00:00
Marshall Clow
89102f0fa9
Implement uncaught_exceptions() using the newly added hooks in libc++abi, when available
...
llvm-svn: 238846
2015-06-02 15:33:38 +00:00
Marshall Clow
4669541d15
Add N4259 to the list of papers from Lenexa. Update links to point at public repos.
...
llvm-svn: 238340
2015-05-27 17:19:40 +00:00
Marshall Clow
c5c29006dc
Add tests to ensure that string/vector/array have contiguous iterators - which they did. Mark N4284 as complete
...
llvm-svn: 238233
2015-05-26 18:57:27 +00:00
Marshall Clow
3ac2b08cbd
Mark N4366 as complete. libc++ has done this since 2012
...
llvm-svn: 238207
2015-05-26 14:58:05 +00:00
Marshall Clow
a00932bddb
Implement LWG2433: uninitialized_copy()/etc. should tolerate overloaded operator&
...
llvm-svn: 237699
2015-05-19 15:01:48 +00:00
Marshall Clow
5ca52716cb
Mark N4510 as complete; we already do this
...
llvm-svn: 237638
2015-05-18 23:25:09 +00:00
Marshall Clow
cd6615fd71
Add support for N4389 - std::bool_constant
...
llvm-svn: 237636
2015-05-18 23:21:06 +00:00
Marshall Clow
c9f1124120
Update C++1z status; mark issues 2059,2369,2415,2454 and 2458 as 'complete'. I have committed patches for all of them
...
llvm-svn: 237606
2015-05-18 19:52:49 +00:00
Marshall Clow
170ccd290d
Update C++1z status; mark all the issues that require no library change as 'complete'
...
llvm-svn: 237604
2015-05-18 19:50:05 +00:00
Marshall Clow
98dbf02e19
Update C++1z status with issues and papers from Lenexa
...
llvm-svn: 237596
2015-05-18 19:01:11 +00:00
Marshall Clow
de55932c0d
Found a Urbana paper that has library bits
...
llvm-svn: 236356
2015-05-01 22:14:35 +00:00
Marshall Clow
8f34134ce9
Mark LWG#2387 as complete. No code changes needed
...
llvm-svn: 236236
2015-04-30 15:19:44 +00:00
Marshall Clow
903a5dd112
Removed 'complete' from 2408; updated status
...
llvm-svn: 236025
2015-04-28 19:35:36 +00:00
Marshall Clow
0846f54b0e
Update C++17 status; mark issues 2170, 2377, and 2408 as complete. We already do these; no code changes necessary.
...
llvm-svn: 235992
2015-04-28 14:26:29 +00:00
Marshall Clow
b04058e8c1
Implement LWG 2217 - operator==(sub_match, string) slices on embedded '\0's
...
llvm-svn: 224292
2014-12-15 23:57:56 +00:00
Marshall Clow
ad75510453
Implement N4280 - 'Non-member size() and more'
...
llvm-svn: 222378
2014-11-19 19:43:23 +00:00
Marshall Clow
e8584ca3ad
Added entries for bugs 2118 and 2306, which were closed in Urbana
...
llvm-svn: 222361
2014-11-19 15:59:16 +00:00
Marshall Clow
90ba6230a3
Marked LWG 2399 as complete. I committed a test for this earlier today.
...
llvm-svn: 222251
2014-11-18 20:37:47 +00:00
Marshall Clow
f127a2d77f
Update status of LWG issues 2340, 2396 and 2401. In all three cases, these are things that we already do.
...
llvm-svn: 222240
2014-11-18 17:35:16 +00:00
Marshall Clow
278ddec22c
Implement LWG2400 - 'shared_ptr's get_deleter() should use addressof()', and add tests. Mark LWG2400 and LWG2404 as complete
...
llvm-svn: 222161
2014-11-17 19:05:50 +00:00
Marshall Clow
3687d3c2e9
Implement void_t from N3911. Add a private version for use in the library before C++1z. Update the 1z status page, marking a bunch of issues that don't require library changes as complete (2129, 2212, 2230, 2233, 2325, 2365, 2376)
...
llvm-svn: 222138
2014-11-17 15:50:08 +00:00
Marshall Clow
f1ce9c177f
Fixed a typo in a paper name: 4190 --> N4190
...
llvm-svn: 221690
2014-11-11 16:45:50 +00:00
Marshall Clow
68640684e8
Update status pages for C++1z
...
llvm-svn: 221601
2014-11-10 15:43:20 +00:00