# libc++ Oulu Status

This is a temporary page; please check the c++1z status here

This page shows the status of the papers and issues that are expected to be adopted in Oulu.

The groups that have contributed papers:

- LWG - Library working group
- CWG - Core Language Working group
- SG1 - Study group #1 (Concurrency working group)

### Paper Status

Paper # | Group | Paper Name | Meeting | Status | First released version
--- | --- | --- | --- | --- | ---

### Library Working group Issues Status

Issue # | Issue Name | Meeting | Status
--- | --- | --- | ---
2181 | Exceptions from seed sequence operations | Oulu |
2309 | mutex::lock() should not throw device_or_resource_busy | Oulu | Complete
2310 | Public exposition only member in std::array | Oulu | Patch Ready
2328 | Rvalue stream extraction should use perfect forwarding | Oulu |
2393 | std::function's Callable definition is broken | Oulu |
2426 | Issue about compare_exchange | Oulu |
2436 | Comparators for associative containers should always be CopyConstructible | Oulu | Patch Ready
2441 | Exact-width atomic typedefs should be provided | Oulu | Patch Ready
2451 | [fund.ts.v2] optional<T> should 'forward' T's implicit conversions | Oulu |
2509 | [fund.ts.v2] any_cast doesn't work with rvalue reference targets and cannot move with a value target | Oulu |
2516 | [fund.ts.v2] Public "exposition only" members in observer_ptr | Oulu |
2542 | Missing const requirements for associative containers | Oulu |
2549 | Tuple EXPLICIT constructor templates that take tuple parameters end up taking references to temporaries and will create dangling references | Oulu |
2550 | Wording of unordered container's clear() method complexity | Oulu | Complete
2551 | [fund.ts.v2] "Exception safety" cleanup in library fundamentals required | Oulu | Complete
2555 | [fund.ts.v2] No handling for over-aligned types in optional | Oulu | Complete
2573 | [fund.ts.v2] std::hash<std::experimental::shared_ptr<T>> does not work for arrays | Oulu |
2596 | vector::data() should use addressof | Oulu | Patch Ready
2667 | path::root_directory() description is confusing | Oulu |
2669 | recursive_directory_iterator effects refers to non-existent functions | Oulu |
2670 | system_complete refers to undefined variable 'base' | Oulu |
2671 | Errors in Copy | Oulu |
2673 | status() effects cannot be implemented as specified | Oulu |
2674 | Bidirectional iterator requirement on path::iterator is very expensive | Oulu |
2683 | filesystem::copy() says "no effects" | Oulu |
2684 | priority_queue lacking comparator typedef | Oulu | Patch Ready
2685 | shared_ptr deleters must not not throw on move construction | Oulu | Complete
2688 | clamp misses preconditions and has extraneous condition on result | Oulu | Patch Ready
2689 | Parallel versions of std::copy and std::move shouldn't be in order | Oulu |
2698 | Effect of assign() on iterators/pointers/references | Oulu | Complete
2706 | Error reporting for recursive_directory_iterator::pop() is under-specified | Oulu |
2707 | path construction and assignment should have "string_type&&" overloads | Oulu |
2710 | "Effects: Equivalent to ..." doesn't count "Synchronization:" as determined semantics | Oulu | Complete

### Comments about the issues

- 2181 -
- 2309 - I don't think there's anything to do here.
- 2310 - I think we need a test that checks array::data() == addressof(front()). Other than that, we're good.
- 2328 - <istream>:1467 - fix is straightforward. Need to think about tests.
- 2393 -
- 2426 - I believe this is just a wording clarification, but need to study it some more.
- 2436 - Adds Requirements on compare/hasher. We can static_assert this, and test it.
- 2441 - Looks straightforward.
- 2451 - Significant work.
- 2509 - Significant work.
- 2516 - We don't have an observer_ptr implementation yet.
- 2542 - This is probably mostly writing additional tests.
- 2549 - Tuple EXPLICIT - Eric?
- 2550 - Wording clarification; no code change needed.
- 2551 - Wording cleanup; no code change needed.
- 2555 - Wording clarification; no code change needed.
- 2573 -
- 2596 - Turns out we do this already. Needs tests, though.
- 2667 - Wording clarification; no code change needed.
- 2669 - Wording clarification; no code change needed.
- 2670 - Wording clarification; no code change needed.
- 2671 - Wording clarification; no code change needed.
- 2673 - Wording clarification; no code change needed.
- 2674 - We already depend on the requirements being relaxed.
- 2683 - We already do this.
- 2684 - We already have one; just need to add a test for it.
- 2685 - Wording clarification; no code change needed. We don't handle throwing move ctors here anyway.
- 2688 - I believe that we already do this. Add more tests
- 2689 - We don't have a parallel implementation yet (though I'm working on it).
- 2698 - Wording clarification; no code change needed.
- 2706 - We already implement the new pop(error_code&) overloads
- 2707 - We already implement the new overloads.
- 2710 - Wording cleanup; no code change needed.

Last Updated: 7-Jun-2016