Marshall Clow
55cfe4c16b
Implement LWG2784, and mark 2786, 2795, 2804, 2812, 2826, 2834, 2837 and 2838 as complete - since we do them already
...
llvm-svn: 297752
2017-03-14 17:08:47 +00:00
Eric Fiselier
2c36b40a4b
Mark LWG 2806 as complete. Libc++ speculatively shiped this change in 4.0
...
llvm-svn: 297074
2017-03-06 21:09:02 +00:00
Eric Fiselier
ef7c5a6b9a
Mark LWG 2789 as complete. No changes required
...
llvm-svn: 297073
2017-03-06 21:07:18 +00:00
Eric Fiselier
bc9cbcedc1
Implement LWG 2787 - [file_status.cons] is inconsistent
...
llvm-svn: 297071
2017-03-06 21:02:06 +00:00
Eric Fiselier
fb07598bf7
Mark LWG 2781 as complete. No changes required
...
llvm-svn: 297069
2017-03-06 20:56:13 +00:00
Eric Fiselier
23e323f284
Mark two any_cast issues as complete
...
llvm-svn: 297066
2017-03-06 20:49:42 +00:00
Marshall Clow
921cab303c
Header update with info about the current status of C++17
...
llvm-svn: 297022
2017-03-06 16:09:02 +00:00
Marshall Clow
a6e3972bfc
Update list with changes from Kona meeting
...
llvm-svn: 297021
2017-03-06 16:06:02 +00:00
Eric Fiselier
3c35491f02
Update all bug URL's to point to https://bugs.llvm.org/ ...
...
llvm-svn: 295434
2017-02-17 08:37:03 +00:00
Eric Fiselier
2a1bfa98d1
[libcxx] Remove unexpected handlers in C++17
...
Summary:
This patch implements [P0003R5](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0003r5.html ) which removes exception specifications from C++17.
The only changes to the library are removing `set_unexpected`, `get_unexpected`, `unexpected`, and `unexpected_handler`. These functions can be re-enabled in C++17 using `_LIBCPP_ENABLE_CXX17_REMOVED_UNEXPECTED_FUNCTIONS`.
@mclow.lists what do you think about removing stuff is this way?
Reviewers: mclow.lists
Reviewed By: mclow.lists
Subscribers: mclow.lists, cfe-commits
Differential Revision: https://reviews.llvm.org/D28172
llvm-svn: 295406
2017-02-17 03:25:08 +00:00
Marshall Clow
077081d4d5
Update a couple of issue statuses
...
llvm-svn: 295355
2017-02-16 18:50:30 +00:00
Eric Fiselier
4ae0369b8e
Update info for LWG 2665 in upcoming_meeting.html
...
llvm-svn: 294501
2017-02-08 19:04:18 +00:00
Marshall Clow
891239e64f
Mark LWG2784 as ready
...
llvm-svn: 294311
2017-02-07 15:34:20 +00:00
Marshall Clow
7a1c0efff4
Add some tests to verify that we implement LWG#2837 correctly. No functional change.
...
llvm-svn: 294194
2017-02-06 16:03:23 +00:00
Marshall Clow
01595ef77d
Fix a typo - extra '>'
...
llvm-svn: 294190
2017-02-06 15:29:03 +00:00
Marshall Clow
62ab88143e
Set up 'upcoming meeting' bug list
...
llvm-svn: 294189
2017-02-06 15:17:22 +00:00
Eric Fiselier
25e9c7aa55
Mark LWG 2765 as complete. No changes needed
...
llvm-svn: 294167
2017-02-06 02:41:49 +00:00
Eric Fiselier
9af60c4a8b
Implement LWG 2773 - std::ignore should be constexpr.
...
In addition to the PR for LWG 2773 this patch also ensures
that each of std::ignores constructors or assignment operators
are constexpr.
llvm-svn: 294165
2017-02-06 01:25:31 +00:00
Marshall Clow
a98b5fd999
Fixed a couple of invalid statuses for 2665 and 2758
...
llvm-svn: 293179
2017-01-26 14:36:14 +00:00
Marshall Clow
3cd9e94241
Implement LWG2556: Wide contract for future::share()
...
llvm-svn: 292992
2017-01-24 23:28:25 +00:00
Marshall Clow
63b560be69
Change the return type of emplace_[front|back] back to void when building with C++14 or before. Resolves PR31680.
...
llvm-svn: 292990
2017-01-24 23:09:12 +00:00
Marshall Clow
1ee7bf6313
Update status for LWG2733
...
llvm-svn: 292967
2017-01-24 19:37:09 +00:00
Marshall Clow
77dd30b557
Mark LWG2736 as complete. No code changes, but we have more tests now
...
llvm-svn: 292958
2017-01-24 18:03:32 +00:00
Marshall Clow
cddeb751a1
Implement LWG#2778: basic_string_view is missing constexpr.
...
llvm-svn: 292823
2017-01-23 19:53:28 +00:00
Eric Fiselier
f9127593a9
Implement P0513R0 - "Poisoning the Hash"
...
Summary:
Exactly what the title says.
This patch also adds a `std::hash<nullptr_t>` specialization in C++17, but it was not added by this paper and I can't find the actual paper that adds it.
See http://wg21.link/P0513R0 for more info.
If there are no comments in the next couple of days I'll commit this
Reviewers: mclow.lists, K-ballo, EricWF
Reviewed By: EricWF
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D28938
llvm-svn: 292684
2017-01-21 00:02:12 +00:00
Marshall Clow
c3cb054e0c
Mark two of the TS implementations as 'in progress'
...
llvm-svn: 292490
2017-01-19 15:30:36 +00:00
Marshall Clow
2f116c432d
Mark 'constexpr char_traits' as complete.
...
llvm-svn: 292000
2017-01-14 05:55:17 +00:00
Marshall Clow
8fd58a6be8
Implement P0403R1 - 'Literal suffixes for basic_string_view'. Requires clang 4.0 (specifically, r290744)
...
llvm-svn: 291457
2017-01-09 18:07:34 +00:00
Marshall Clow
dbf7ca9ce6
Implement P0505: 'Wording for GB 50'
...
llvm-svn: 291028
2017-01-04 23:03:24 +00:00
Marshall Clow
020b623a3b
Implement the last bit of P0031: 'A Proposal to Add Constexpr Modifiers to reverse_iterator, move_iterator, array and Range Access' for C++17
...
llvm-svn: 290976
2017-01-04 17:58:17 +00:00
Eric Fiselier
649dcec527
Update year to 2017
...
llvm-svn: 290876
2017-01-03 11:20:43 +00:00
Eric Fiselier
28727b81ef
Update "Making Optional Greater Equal Again" paper status
...
llvm-svn: 290742
2016-12-30 04:16:30 +00:00
Eric Fiselier
687d3213f0
Implement a throwing version of _LIBCPP_ASSERT.
...
This patch implements changes to allow _LIBCPP_ASSERT to throw on failure
instead of aborting. The main changes needed to do this are:
1. Change _LIBCPP_ASSERT to call a handler via a replacable function pointer
instead of calling abort directly. Additionally this patch implements two
handler functions, one which aborts and another that throws an exception.
2. Add _NOEXCEPT_DEBUG macro for disabling noexcept spec on function which
contain _LIBCPP_ASSERT. This is required in order to prevent assertion
failures throwing through a noexcept function. This macro has no effect
unless _LIBCPP_DEBUG_USE_EXCEPTIONS is defined.
Having a non-aborting _LIBCPP_ASSERT is very important to allow sane testing of
debug mode. Currently we can only have one test case per file, since the test
case will cause the program to abort. Testing debug mode this way would require
thousands of test files, most of which would be 95% boiler plate. I don't think
this is a feasible strategy. Fortunately using a throwing debug handler solves
these issues.
Additionally this patch rewrites the documentation for debug mode.
llvm-svn: 290651
2016-12-28 04:58:52 +00:00
Eric Fiselier
14b1bcc14b
Implement P0435R1 - Resolving LWG issues for common_type
...
llvm-svn: 290627
2016-12-27 21:16:48 +00:00
Eric Fiselier
fec6be9c81
Recommit r286884: P0503R0, adopted in Issaquah, rewords some requirements on nullptr_t and istream_iterator.
...
No code changes were needed, but I updated a few tests.
Also resolved P0509 and P0521, which required no changes to the library or tests.
This patch was reverted due to llvm.org/PR31016. There is a bug in Clang 3.7
which causes default.pass.cpp to fails. That test is now marked as XFAIL for that
clang version.
This patch was originally authored by Marshall Clow.
llvm-svn: 289708
2016-12-14 21:22:48 +00:00
Eric Fiselier
11b932b0d9
Update status page for variant implementation
...
llvm-svn: 288625
2016-12-04 22:14:53 +00:00
Eric Fiselier
9a0b4abbba
Mark various <variant> items as complete
...
llvm-svn: 288574
2016-12-03 02:47:40 +00:00
Vedant Kumar
50d161ce0f
Revert "P0503R0, adopted in Issaquah, rewords some requirements on nullptr_t and istream_iterator. No code changes were needed, but I updated a few tests. Also resolved P0509 and P0521, which required no changes to the library or tests."
...
This reverts commit r286884, because it breaks the Xcode 7 builders:
http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-expensive/1583
Here is a PR that tracks the issue:
https://llvm.org/bugs/show_bug.cgi?id=31016
llvm-svn: 287004
2016-11-15 18:48:36 +00:00
Marshall Clow
48b520a7b6
P0503R0, adopted in Issaquah, rewords some requirements on nullptr_t and istream_iterator. No code changes were needed, but I updated a few tests. Also resolved P0509 and P0521, which required no changes to the library or tests.
...
llvm-svn: 286884
2016-11-14 20:41:17 +00:00
Marshall Clow
065b3af096
Implement P0516: 'Clarify That shared_future’s Copy Operations have Wide Contracts' which was adopted last week in Issaquah
...
llvm-svn: 286877
2016-11-14 19:58:05 +00:00
Marshall Clow
87f2f1687e
Implement P0510 'Make future_error Constructible' adopted in Issaquah
...
llvm-svn: 286864
2016-11-14 18:56:24 +00:00
Marshall Clow
1c7fe126ee
Fixes for LWG 2598, 2686, 2739, 2742, 2747, and 2759, which were adopted last week in Issaquah
...
llvm-svn: 286858
2016-11-14 18:22:19 +00:00
Marshall Clow
539dd132ef
Update C++1z status with LWG papers from Issaquah.
...
llvm-svn: 286835
2016-11-14 15:09:45 +00:00
Marshall Clow
1d44f0fb46
Update C++1z status with LFTS issues from Issaquah.
...
llvm-svn: 286834
2016-11-14 14:53:07 +00:00
Marshall Clow
c0681d2b0e
Update C++1z status with C++17 issues from Issaquah. Still to come: LFTS issues and papers
...
llvm-svn: 286828
2016-11-14 14:41:33 +00:00
Marshall Clow
1b8f260ed9
Implement constexpr support for reverse_iterator. Reviewed as https://reviews.llvm.org/D25534
...
llvm-svn: 284602
2016-10-19 15:12:50 +00:00
Eric Fiselier
9db689263e
Update LWG 2754 status
...
llvm-svn: 284326
2016-10-16 03:52:48 +00:00
Eric Fiselier
f72aaff994
Update LWG 2767 and add test case
...
llvm-svn: 284324
2016-10-16 03:45:06 +00:00
Eric Fiselier
015fcffd57
Update status for std::optional LWG issues and fix an optional SFINAE bug
...
llvm-svn: 284323
2016-10-16 03:21:35 +00:00
Eric Fiselier
50253ed1c6
Update issue status for LWG 2744
...
llvm-svn: 284322
2016-10-16 02:51:50 +00:00
Eric Fiselier
9c737fddba
Update issue status for LWG 2768 and 2769
...
llvm-svn: 284321
2016-10-16 01:43:43 +00:00
Eric Fiselier
a296b7bf12
Update notes for LWG 2678
...
llvm-svn: 284319
2016-10-16 00:49:33 +00:00
Eric Fiselier
ecafa8739e
Implement LWG 2712 and update other issues status
...
llvm-svn: 284318
2016-10-16 00:47:59 +00:00
Eric Fiselier
ae4c3e1699
Implement LWG 2681 and 2682
...
llvm-svn: 284316
2016-10-16 00:29:22 +00:00
Eric Fiselier
736538b0fc
Mark LWG 2680 as done
...
llvm-svn: 284315
2016-10-15 23:12:30 +00:00
Eric Fiselier
9ada18b339
Implement LWG 2672.
...
llvm-svn: 284314
2016-10-15 23:05:04 +00:00
Eric Fiselier
87ee8a0adb
Implement modified LWG 2665
...
llvm-svn: 284313
2016-10-15 22:37:42 +00:00
Eric Fiselier
bbcfec7edd
Implement LWG2664 and update its status
...
llvm-svn: 284310
2016-10-15 21:29:44 +00:00
Eric Fiselier
26ef119dcb
Update the status of issues
...
llvm-svn: 284309
2016-10-15 20:58:51 +00:00
Marshall Clow
3baae885e1
Update the status of three papers that do not require library changes
...
llvm-svn: 284165
2016-10-13 21:15:09 +00:00
Marshall Clow
6ecac73019
Implement http://wg21.link/p0302r1 : Removing Allocator Support in std::function. These functions never worked, and as far as I know, no one ever called them.
...
llvm-svn: 284164
2016-10-13 21:06:03 +00:00
Eric Fiselier
e6364a35fd
Fix LWG2683 - filesystem::copy() should always clear the user-provided error_code
...
llvm-svn: 283951
2016-10-11 22:18:09 +00:00
Marshall Clow
4bf466bd09
Mark 2777 as complete
...
llvm-svn: 283804
2016-10-10 21:37:16 +00:00
Marshall Clow
e1736760c8
Update with the rest of the results from the 7-Oct Telecom
...
llvm-svn: 283799
2016-10-10 21:00:12 +00:00
Marshall Clow
03344b3bdc
Updated notes about issues; marked 2062, 2223, 2394, 2460 and 2540 as complete.
...
llvm-svn: 283781
2016-10-10 17:11:37 +00:00
Marshall Clow
33566a711d
Mark issues 2544, 2567, 2569, 2686 and 2694 as ready/done.
...
llvm-svn: 283752
2016-10-10 14:15:56 +00:00
Marshall Clow
c036604f9b
Mark issues 2514, 2519, 2536 and 2475 as done
...
llvm-svn: 283452
2016-10-06 13:59:18 +00:00
Marshall Clow
e81d2fa9bb
Mark LWG#2679 as complete
...
llvm-svn: 283356
2016-10-05 18:36:24 +00:00
Marshall Clow
cd1e532c39
Mark LWG#2358 as done
...
llvm-svn: 283341
2016-10-05 17:02:43 +00:00
Marshall Clow
592024759e
Mark LWG issues 2221, 2556 and 2589 as complete
...
llvm-svn: 283325
2016-10-05 15:21:11 +00:00
Marshall Clow
af63ab2b69
Mark #2759 as ready and #2755 as complete
...
llvm-svn: 283222
2016-10-04 14:39:58 +00:00
Marshall Clow
6203c91eac
Mark #2598 as ready
...
llvm-svn: 283220
2016-10-04 14:08:50 +00:00
Marshall Clow
f21aa87f3b
Mark #2739 as ready
...
llvm-svn: 283218
2016-10-04 13:41:56 +00:00
Marshall Clow
da68203678
Mark a couple more Issaquah issues as done: 2578 and 2738
...
llvm-svn: 283163
2016-10-03 23:42:31 +00:00
Marshall Clow
a5554a93de
Mark a couple issues as done (2742 and 2760)
...
llvm-svn: 283124
2016-10-03 17:35:08 +00:00
Marshall Clow
bfdc374212
Change titie of page from Oulu to Issaquah
...
llvm-svn: 283113
2016-10-03 14:24:21 +00:00
Marshall Clow
a82e92867f
List tentatively ready issues for Issaquah
...
llvm-svn: 283112
2016-10-03 14:23:04 +00:00
Eric Fiselier
040411762f
Mark LWG 2716 as complete - shuffle and sample disallows lvalue URNGs.
...
Libc++'s implementation of shuffle and sample already support lvalue and rvalue
RNG's. This patch adds tests for both categories and marks the issue as complete.
This patch also contains drive-by change for std::experimental::sample which
improves the diagnostics produced when the correct iterator categories are
not supplied.
llvm-svn: 279947
2016-08-28 21:55:00 +00:00
Eric Fiselier
2fc65041be
Implement LWG 2711. Constrain path members.
...
llvm-svn: 279945
2016-08-28 21:26:01 +00:00
Eric Fiselier
324506b9f3
[libcxx] Add std::any
...
Summary:
This patch adds std::any by moving/adapting <experimental/any>.
This patch also implements the std::any parts of p0032r3 (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0032r3.pdf )
and LWG 2509 (http://cplusplus.github.io/LWG/lwg-defects.html#2509 ).
I plan to push it in a day or two if there are no comments.
Reviewers: mclow.lists, EricWF
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D22733
llvm-svn: 278310
2016-08-11 03:13:11 +00:00
Eric Fiselier
344e13892e
Remove *super* old test suite results doc for Linux and Windows.
...
Neither of these results files has been update in years. Linux now has a dozen
or so buildbots tracking it and the Windows results are no longer relevant.
I plan on looking into getting a Windows buildbot going using Appveyor in the
coming days.
llvm-svn: 278087
2016-08-09 03:05:43 +00:00
Eric Fiselier
da178822c2
Mark LWG 2726 as complete. No code change needed.
...
llvm-svn: 277964
2016-08-07 21:47:06 +00:00
Marshall Clow
19b4035f29
Implement LCM and GCD for C++17. Same code as for Library Fundamentals TS.
...
llvm-svn: 276751
2016-07-26 14:29:45 +00:00
Eric Fiselier
4927c29577
Implement the std::pair parts of "Improving pair and tuple". Completes N4387.
...
llvm-svn: 276605
2016-07-25 04:32:07 +00:00
Eric Fiselier
790df14543
Implement LWG 2393. Check for LValue-callability.
...
llvm-svn: 276546
2016-07-24 04:16:40 +00:00
Eric Fiselier
63c69ef49c
Implement LWG2328. Rvalue stream extraction should perfect forward.
...
llvm-svn: 276545
2016-07-24 04:07:22 +00:00
Eric Fiselier
e4d9c316d2
Implement P0040r3: Extending memory management tools
...
llvm-svn: 276544
2016-07-24 03:51:39 +00:00
Eric Fiselier
0fdab5eb69
Implement P0392r0. Integrate filesystem::path and string_view.
...
llvm-svn: 276511
2016-07-23 03:10:56 +00:00
Eric Fiselier
38136197bb
Mark P0358r1 as complete. It is already implemented
...
llvm-svn: 276233
2016-07-21 03:28:52 +00:00
Eric Fiselier
7efa5e4b5f
Mark P0337r0 as complete. It was already implemented in std::experimental
...
llvm-svn: 276231
2016-07-21 03:24:43 +00:00
Eric Fiselier
0e411641a3
Implement P0084r2. Changing emplace return types.
...
llvm-svn: 276230
2016-07-21 03:20:17 +00:00
Eric Fiselier
03e29a2964
Implement C++17 tuple bits. Including apply and make_from_tuple.
...
This patch upgrades <tuple> to be C++17 compliant by implementing:
* tuple_size_v: This was forgotten when implementing the other _v traits.
* std::apply: This was added via LFTS v1 in p0220r1.
* std::make_from_tuple: This was added in p0209r2.
llvm-svn: 275745
2016-07-18 00:35:56 +00:00
Marshall Clow
10e8bef1d4
Add more tests for LWG#2582. No code changes needed, just tests.
...
llvm-svn: 275211
2016-07-12 20:15:46 +00:00
Marshall Clow
ced86bf736
mark issue #2422 as complete; this was just a wording clarification
...
llvm-svn: 275177
2016-07-12 15:29:35 +00:00
Marshall Clow
191cbb2406
mark issue #2181 as complete; this was just a wording clarification
...
llvm-svn: 275176
2016-07-12 15:15:55 +00:00
Marshall Clow
92aa427bb8
Put the status in the right column
...
llvm-svn: 275171
2016-07-12 14:38:59 +00:00
Marshall Clow
7658df4bcd
Mark P0067 as 'postponed', because it will be revised before the next meeting
...
llvm-svn: 275170
2016-07-12 14:37:39 +00:00
Marshall Clow
f7aaf31c53
Mark issues 2550, 2551, 2555, 2685, 2698 as complete. These issues are wording clarifications; no code changes required.
...
llvm-svn: 274255
2016-06-30 18:05:19 +00:00
Marshall Clow
2f63da2887
Mark issues 2667, 2669, 2670, 2671, 2673 as complete. These issues are wording clarifications; no code changes required.
...
llvm-svn: 274253
2016-06-30 17:59:01 +00:00
Marshall Clow
e46c0885ff
Implement LWG#2688: 'clamp misses preconditions and has extraneous condition on result'. We already did this, just added tests
...
llvm-svn: 274252
2016-06-30 17:52:51 +00:00
Marshall Clow
c8afc869b0
Implement LWG#2684: 'priority_queue lacking comparator typedef'. We already did this, just added tests
...
llvm-svn: 274243
2016-06-30 16:03:50 +00:00
Marshall Clow
81fce9729c
Implement LWG#2596: 'vector::data() should use addressof'
...
llvm-svn: 274241
2016-06-30 15:50:55 +00:00
Marshall Clow
e766a87b01
Implement LWG#2441: 'Exact-width atomic typedefs should be provided'
...
llvm-svn: 274236
2016-06-30 15:28:38 +00:00
Marshall Clow
497677449b
Implement LWG#2436: 'Comparators for associative containers should always be CopyConstructible'
...
llvm-svn: 274235
2016-06-30 15:11:53 +00:00
Eric Fiselier
b4fe59b595
Update status of already completed Oulu issues.
...
* P0163r0: Implemented in r273839.
* LWG 2309: pthread_mutex_lock only returns this error if certain debug flags
were passed during construction. libc++ does not pass these flags. There is
nothing to do.
* LWG 2310: Wording fix. No impact on libc++'s implementation.
* LWG 2312: libc++'s std::tuple implementation already constrains the overloads
based on the number of arguments.
* LWG 2549: libc++'s std::tuple already applied this fix.
* LWG 2674: libc++ already depends on this relaxed wording.
* LWG 2704, 2706, 2707, 2719, 2720, 2721, 2723, 2725, 2728: All of these filesystem were either
submitted by me and fixed before submission, or have already been applied.
llvm-svn: 274214
2016-06-30 06:59:29 +00:00
Marshall Clow
91bd7dda3a
Use WG21.link reflector to get to issues, rather than linking directly
...
llvm-svn: 274018
2016-06-28 14:13:28 +00:00
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
5e1787a9ea
Update status of filesystem issues, and add tests for LWG issue 2683
...
llvm-svn: 273051
2016-06-17 21:24:11 +00:00
Eric Fiselier
c79795874a
Add Filesystem TS -- Complete
...
Add the completed std::experimental::filesystem implementation and tests.
The implementation supports C++11 or newer.
The TS is built as part of 'libc++experimental.a'. Users of the TS need to
manually link this library. Building and testing the TS can be disabled using
the CMake option '-DLIBCXX_ENABLE_FILESYSTEM=OFF'.
Currently 'libc++experimental.a' is not installed by default. To turn on the
installation of the library use '-DLIBCXX_INSTALL_EXPERIMENTAL_LIBRARY=ON'.
llvm-svn: 273034
2016-06-17 19:46:40 +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
Marshall Clow
cbfb1487e1
Two more issues w/patches
...
llvm-svn: 272263
2016-06-09 14:50:38 +00:00
Marshall Clow
79e7c2c9b4
Add notes for 2688
...
llvm-svn: 272216
2016-06-08 22:33:25 +00:00
Marshall Clow
96c63abad8
Mark 2441 as ready
...
llvm-svn: 272202
2016-06-08 21:25:38 +00:00
Marshall Clow
1fe50f3be5
Patch ready for #2436
...
llvm-svn: 272150
2016-06-08 14:54:35 +00:00
Marshall Clow
a11d578b4b
Added notes for a bunch of the issues
...
llvm-svn: 272050
2016-06-07 20:05:57 +00:00
Marshall Clow
13bfcb0b03
Added notes about the issues for Oulu
...
llvm-svn: 272029
2016-06-07 17:54:38 +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
e44604aec7
Update libcxx.llvm.org documentation by linking to new docs.
...
Summary:
Currently much of the libcxx website is duplicated between the old www/ documentation and newer Sphinx docs. This patch changes the main libc++ webpage so that it links to the new documentation where possible. This means removing numerous sections from the landing page.
@mclow.lists What do you think?
Reviewers: mclow.lists
Subscribers: cfe-commits, mclow.lists
Differential Revision: http://reviews.llvm.org/D19250
llvm-svn: 271469
2016-06-02 02:16:28 +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
Marshall Clow
30bffb9dcf
Issues for Oulu
...
llvm-svn: 271282
2016-05-31 14:29:38 +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
8dbe074baf
Update TS implementation status page
...
llvm-svn: 268844
2016-05-07 03:24:31 +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
a9a9a8a92a
Update filesystem status
...
llvm-svn: 265856
2016-04-08 21:52:32 +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
41f4b6d4fa
more status updates
...
llvm-svn: 261926
2016-02-25 20:17:03 +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
16b8eddcac
Fix a missing closing tag
...
llvm-svn: 261677
2016-02-23 19:48:44 +00:00
Marshall Clow
a6f77c170d
More updates
...
llvm-svn: 261676
2016-02-23 19:48:09 +00:00
Marshall Clow
1e1f830e93
More updates
...
llvm-svn: 261655
2016-02-23 17:07:15 +00:00
Marshall Clow
d59478c9ab
More updates; patch for 2583 ready
...
llvm-svn: 261647
2016-02-23 16:20:24 +00:00
Marshall Clow
c8e5fc3c08
Add some status
...
llvm-svn: 260975
2016-02-16 16:05:15 +00:00
Marshall Clow
42770525eb
Add some comments
...
llvm-svn: 260966
2016-02-16 14:42:23 +00:00
Marshall Clow
38748aa300
Added a (private) status page for the Jacksonville meeting
...
llvm-svn: 260964
2016-02-16 14:35:56 +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
146c640e81
Cleaned up the intro for the TS status page; really need much more info here
...
llvm-svn: 254971
2015-12-08 00:08:23 +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
Eric Fiselier
dfdf929ac9
Update issues status
...
llvm-svn: 250336
2015-10-14 22:26:40 +00:00
Eric Fiselier
9da4c8ed75
Link to new documentation from existing homepage
...
llvm-svn: 250325
2015-10-14 20:51:33 +00:00
Marshall Clow
438bdf639b
Mark 2447 and 2466 as completed.
...
llvm-svn: 250061
2015-10-12 16:25:21 +00:00
Marshall Clow
1f3f2d698a
Mark 2244 as 'Patch Ready', 2477 and 2487 as 'Complete'
...
llvm-svn: 249595
2015-10-07 19:45:14 +00:00
Marshall Clow
28ac01bfc8
Updated issue 2476
...
llvm-svn: 249461
2015-10-06 20:35:15 +00:00
Eric Fiselier
5499f4a35e
Add comments for LWG issues 2219 and 2367
...
llvm-svn: 249372
2015-10-06 04:12:30 +00:00
Marshall Clow
d77e802f07
Mark 2259 and 2473 as complete. Add some more notes
...
llvm-svn: 249363
2015-10-05 23:27:10 +00:00
Marshall Clow
297d1c58b2
Mark 2380 and 2384 as complete; no changes needed
...
llvm-svn: 249354
2015-10-05 21:11:20 +00:00