Index: www/atomic_design.html =================================================================== --- www/atomic_design.html +++ www/atomic_design.html @@ -12,7 +12,7 @@
One should consult the (currently draft) -C++ standard +C++ standard for the details of the definitions for these operations. For example __atomic_compare_exchange_weak_seq_cst_seq_cst is allowed to fail spuriously while __atomic_compare_exchange_strong_seq_cst_seq_cst is @@ -370,7 +370,7 @@
(See the -C++ standard +C++ standard for the detailed definitions of each of these orderings).
Index: www/cxx1y_status.html =================================================================== --- www/cxx1y_status.html +++ www/cxx1y_status.html @@ -12,7 +12,7 @@In April 2013, the C++ standard committee approved the draft for the next version of the C++ standard, known as "C++1Y" (probably to be C++14)
The draft standard includes papers and issues that were voted on at the previous three meetings (Kona, Portland, and Bristol)
-This page shows the status of libc++; the status of clang's support of the language features is here.
+This page shows the status of libc++; the status of clang's support of the language features is here.
The groups that have contributed papers:
| Paper # | Group | Paper Name | Meeting | Status | First released version |
|---|---|---|---|---|---|
| 3346 | LWG | Terminology for Container Element Requirements - Rev 1 | Kona | Complete | 3.4 |
| 3346 | LWG | Terminology for Container Element Requirements - Rev 1 | Kona | Complete | 3.4 |
| 3421 | LWG | Making Operator Functors greater<> | Portland | Complete | 3.4 |
| 3462 | LWG | std::result_of and SFINAE | Portland | Complete | 3.4 |
| 3469 | LWG | Constexpr Library Additions: chrono, v3 | Portland | Complete | 3.4 |
| 3470 | LWG | Constexpr Library Additions: containers, v2 | Portland | Complete | 3.4 |
| 3471 | LWG | Constexpr Library Additions: utilities, v3 | Portland | Complete | 3.4 |
| 3302 | LWG | Constexpr Library Additions: complex, v2 | Portland | Complete | 3.4 |
| 3421 | LWG | Making Operator Functors greater<> | Portland | Complete | 3.4 |
| 3462 | LWG | std::result_of and SFINAE | Portland | Complete | 3.4 |
| 3469 | LWG | Constexpr Library Additions: chrono, v3 | Portland | Complete | 3.4 |
| 3470 | LWG | Constexpr Library Additions: containers, v2 | Portland | Complete | 3.4 |
| 3471 | LWG | Constexpr Library Additions: utilities, v3 | Portland | Complete | 3.4 |
| 3302 | LWG | Constexpr Library Additions: complex, v2 | Portland | Complete | 3.4 |
| 3545 | LWG | An Incremental Improvement to integral_constant | Bristol | Complete | 3.4 |
| 3644 | LWG | Null Forward Iterators | Bristol | Complete | 3.4 |
| 3668 | LWG | std::exchange() | Bristol | Complete | 3.4 |
| 3658 | LWG | Compile-time integer sequences | Bristol | Complete | 3.4 |
| 3670 | LWG | Addressing Tuples by Type | Bristol | Complete | 3.4 |
| 3671 | LWG | Making non-modifying sequence operations more robust | Bristol | Complete | 3.4 |
| 3656 | LWG | make_unique | Bristol | Complete | 3.4 |
| 3654 | LWG | Quoted Strings | Bristol | Complete | 3.4 |
| 3642 | LWG | User-defined Literals | Bristol | Complete | 3.4 |
| 3655 | LWG | TransformationTraits Redux (excluding part 4) | Bristol | Complete | 3.4 |
| 3657 | LWG | Adding heterogeneous comparison lookup to associative containers | Bristol | Complete | 3.4 |
| 3672 | LWG | A proposal to add a utility class to represent optional objects | Bristol | Removed from Draft Standard | n/a |
| 3669 | LWG | Fixing constexpr member functions without const | Bristol | Complete | 3.4 |
| 3662 | LWG | C++ Dynamic Arrays (dynarray) | Bristol | Removed from Draft Standard | n/a |
| 3659 | SG1 | Shared Locking in C++ | Bristol | Complete | 3.4 |
| 3545 | LWG | An Incremental Improvement to integral_constant | Bristol | Complete | 3.4 |
| 3644 | LWG | Null Forward Iterators | Bristol | Complete | 3.4 |
| 3668 | LWG | std::exchange() | Bristol | Complete | 3.4 |
| 3658 | LWG | Compile-time integer sequences | Bristol | Complete | 3.4 |
| 3670 | LWG | Addressing Tuples by Type | Bristol | Complete | 3.4 |
| 3671 | LWG | Making non-modifying sequence operations more robust | Bristol | Complete | 3.4 |
| 3656 | LWG | make_unique | Bristol | Complete | 3.4 |
| 3654 | LWG | Quoted Strings | Bristol | Complete | 3.4 |
| 3642 | LWG | User-defined Literals | Bristol | Complete | 3.4 |
| 3655 | LWG | TransformationTraits Redux (excluding part 4) | Bristol | Complete | 3.4 |
| 3657 | LWG | Adding heterogeneous comparison lookup to associative containers | Bristol | Complete | 3.4 |
| 3672 | LWG | A proposal to add a utility class to represent optional objects | Bristol | Removed from Draft Standard | n/a |
| 3669 | LWG | Fixing constexpr member functions without const | Bristol | Complete | 3.4 |
| 3662 | LWG | C++ Dynamic Arrays (dynarray) | Bristol | Removed from Draft Standard | n/a |
| 3659 | SG1 | Shared Locking in C++ | Bristol | Complete | 3.4 |
| 3779 | LWG | User-defined Literals for std::complex | Chicago | Complete | 3.4 |
| 3789 | LWG | Constexpr Library Additions: functional | Chicago | Complete | 3.4 |
| 3779 | LWG | User-defined Literals for std::complex | Chicago | Complete | 3.4 |
| 3789 | LWG | Constexpr Library Additions: functional | Chicago | Complete | 3.4 |
| 3924 | LWG | Discouraging rand() in C++14 | Issaquah | Complete | 3.5 |
| 3887 | LWG | Consistent Metafunction Aliases | Issaquah | Complete | 3.5 |
| 3891 | SG1 | A proposal to rename shared_mutex to shared_timed_mutex | Issaquah | Complete | 3.5 |
| 3924 | LWG | Discouraging rand() in C++14 | Issaquah | Complete | 3.5 |
| 3887 | LWG | Consistent Metafunction Aliases | Issaquah | Complete | 3.5 |
| 3891 | SG1 | A proposal to rename shared_mutex to shared_timed_mutex | Issaquah | Complete | 3.5 |
| Issue # | Issue Name | Meeting | Status |
|---|---|---|---|
| 1214 | Insufficient/inconsistent key immutability requirements for associative containers | Kona | Complete |
| 2009 | Reporting out-of-bound values on numeric string conversions | Kona | Complete |
| 2010 | is_* traits for binding operations can't be meaningfully specialized | Kona | Complete |
| 2015 | Incorrect pre-conditions for some type traits | Kona | Complete |
| 2021 | Further incorrect usages of result_of | Kona | Complete |
| 2028 | messages_base::catalog overspecified | Kona | Complete |
| 2033 | Preconditions of reserve, shrink_to_fit, and resize functions | Kona | Complete |
| 2039 | Issues with std::reverse and std::copy_if | Kona | Complete |
| 2044 | No definition of "Stable" for copy algorithms | Kona | Complete |
| 2045 | forward_list::merge and forward_list::splice_after with unequal allocators | Kona | Complete |
| 2047 | Incorrect "mixed" move-assignment semantics of unique_ptr | Kona | Complete |
| 2050 | Unordered associative containers do not use allocator_traits to define member types | Kona | Complete |
| 2053 | Errors in regex bitmask types | Kona | Complete |
| 2061 | make_move_iterator and arrays | Kona | Complete |
| 2064 | More noexcept issues in basic_string | Kona | Complete |
| 2065 | Minimal allocator interface | Kona | Complete |
| 2067 | packaged_task should have deleted copy c'tor with const parameter | Kona | Complete |
| 2069 | Inconsistent exception spec for basic_string move constructor | Kona | Complete |
| 2096 | Incorrect constraints of future::get in regard to MoveAssignable | Kona | Complete |
| 2102 | Why is std::launch an implementation-defined type? | Kona | Complete |
| 1214 | Insufficient/inconsistent key immutability requirements for associative containers | Kona | Complete |
| 2009 | Reporting out-of-bound values on numeric string conversions | Kona | Complete |
| 2010 | is_* traits for binding operations can't be meaningfully specialized | Kona | Complete |
| 2015 | Incorrect pre-conditions for some type traits | Kona | Complete |
| 2021 | Further incorrect usages of result_of | Kona | Complete |
| 2028 | messages_base::catalog overspecified | Kona | Complete |
| 2033 | Preconditions of reserve, shrink_to_fit, and resize functions | Kona | Complete |
| 2039 | Issues with std::reverse and std::copy_if | Kona | Complete |
| 2044 | No definition of "Stable" for copy algorithms | Kona | Complete |
| 2045 | forward_list::merge and forward_list::splice_after with unequal allocators | Kona | Complete |
| 2047 | Incorrect "mixed" move-assignment semantics of unique_ptr | Kona | Complete |
| 2050 | Unordered associative containers do not use allocator_traits to define member types | Kona | Complete |
| 2053 | Errors in regex bitmask types | Kona | Complete |
| 2061 | make_move_iterator and arrays | Kona | Complete |
| 2064 | More noexcept issues in basic_string | Kona | Complete |
| 2065 | Minimal allocator interface | Kona | Complete |
| 2067 | packaged_task should have deleted copy c'tor with const parameter | Kona | Complete |
| 2069 | Inconsistent exception spec for basic_string move constructor | Kona | Complete |
| 2096 | Incorrect constraints of future::get in regard to MoveAssignable | Kona | Complete |
| 2102 | Why is std::launch an implementation-defined type? | Kona | Complete |
| 2071 | std::valarray move-assignment | Portland | Complete |
| 2074 | Off by one error in std::reverse_copy | Portland | Complete |
| 2081 | Allocator requirements should include CopyConstructible | Portland | Complete |
| 2083 | const-qualification on weak_ptr::owner_before | Portland | Complete |
| 2086 | Overly generic type support for math functions | Portland | Complete |
| 2099 | Unnecessary constraints of va_start() usage | Portland | Complete |
| 2103 | std::allocator_traits<std::allocator<T>>::propagate_on_container_move_assignment | Portland | Complete |
| 2105 | Inconsistent requirements on const_iterator's value_type | Portland | Complete |
| 2110 | remove can't swap but note says it might | Portland | Complete |
| 2123 | merge() allocator requirements for lists versus forward lists | Portland | Complete |
| 2005 | unordered_map::insert(T&&) protection should apply to map too | Portland | Complete |
| 2011 | Unexpected output required of strings | Portland | Complete |
| 2048 | Unnecessary mem_fn overloads | Portland | Complete |
| 2049 | is_destructible is underspecified | Portland | Complete |
| 2056 | future_errc enums start with value 0 (invalid value for broken_promise) | Portland | Complete |
| 2058 | valarray and begin/end | Portland | Complete |
| 2071 | std::valarray move-assignment | Portland | Complete |
| 2074 | Off by one error in std::reverse_copy | Portland | Complete |
| 2081 | Allocator requirements should include CopyConstructible | Portland | Complete |
| 2083 | const-qualification on weak_ptr::owner_before | Portland | Complete |
| 2086 | Overly generic type support for math functions | Portland | Complete |
| 2099 | Unnecessary constraints of va_start() usage | Portland | Complete |
| 2103 | std::allocator_traits<std::allocator<T>>::propagate_on_container_move_assignment | Portland | Complete |
| 2105 | Inconsistent requirements on const_iterator's value_type | Portland | Complete |
| 2110 | remove can't swap but note says it might | Portland | Complete |
| 2123 | merge() allocator requirements for lists versus forward lists | Portland | Complete |
| 2005 | unordered_map::insert(T&&) protection should apply to map too | Portland | Complete |
| 2011 | Unexpected output required of strings | Portland | Complete |
| 2048 | Unnecessary mem_fn overloads | Portland | Complete |
| 2049 | is_destructible is underspecified | Portland | Complete |
| 2056 | future_errc enums start with value 0 (invalid value for broken_promise) | Portland | Complete |
| 2058 | valarray and begin/end | Portland | Complete |
| 2091 | Misplaced effect in m.try_lock_for() | Bristol | Complete |
| 2092 | Vague Wording for condition_variable_any | Bristol | Complete |
| 2093 | Throws clause of condition_variable::wait with predicate | Bristol | Complete |
| 2094 | duration conversion overflow shouldn't participate in overload resolution | Bristol | Complete |
| 2122 | merge() stability for lists versus forward lists | Bristol | Complete |
| 2128 | Absence of global functions cbegin/cend | Bristol | Complete |
| 2145 | error_category default constructor | Bristol | Complete |
| 2147 | Unclear hint type in Allocator's allocate function | Bristol | Complete |
| 2148 | Hashing enums should be supported directly by std::hash | Bristol | Complete |
| 2149 | Concerns about 20.8/5 | Bristol | Complete |
| 2162 | allocator_traits::max_size missing noexcept | Bristol | Complete |
| 2163 | nth_element requires inconsistent post-conditions | Bristol | Complete |
| 2169 | Missing reset() requirements in unique_ptr specialization | Bristol | Complete |
| 2172 | Does atomic_compare_exchange_* accept v == nullptr arguments? | Bristol | Complete |
| 2080 | Specify when once_flag becomes invalid | Bristol | Complete |
| 2098 | promise throws clauses | Bristol | Complete |
| 2109 | Incorrect requirements for hash specializations | Bristol | Complete |
| 2130 | missing ordering constraints for fences | Bristol | Complete |
| 2138 | atomic_flag::clear ordering constraints | Bristol | Complete |
| 2140 | notify_all_at_thread_exit synchronization | Bristol | Complete |
| 2144 | Missing noexcept specification in type_index | Bristol | Complete |
| 2174 | wstring_convert::converted() should be noexcept | Bristol | Complete |
| 2175 | string_convert and wbuffer_convert validity | Bristol | Complete |
| 2176 | Special members for wstring_convert and wbuffer_convert | Bristol | Complete |
| 2177 | Requirements on Copy/MoveInsertable | Bristol | Complete |
| 2185 | Missing throws clause for future/shared_future::wait_for/wait_until | Bristol | Complete |
| 2187 | vector<bool> is missing emplace and emplace_back member functions | Bristol | Complete |
| 2190 | ordering of condition variable operations, reflects Posix discussion | Bristol | Complete |
| 2196 | Specification of is_*[copy/move]_[constructible/assignable] unclear for non-referencable types | Bristol | Complete |
| 2197 | Specification of is_[un]signed unclear for non-arithmetic types | Bristol | Complete |
| 2200 | Data race avoidance for all containers, not only for sequences | Bristol | Complete |
| 2203 | scoped_allocator_adaptor uses wrong argument types for piecewise construction | Bristol | Complete |
| 2207 | basic_string::at should not have a Requires clause | Bristol | Complete |
| 2209 | assign() overspecified for sequence containers | Bristol | Complete |
| 2210 | Missing allocator-extended constructor for allocator-aware containers | Bristol | Complete |
| 2211 | Replace ambiguous use of "Allocator" in container requirements | Bristol | Complete |
| 2222 | Inconsistency in description of forward_list::splice_after single-element overload | Bristol | Complete |
| 2225 | Unrealistic header inclusion checks required | Bristol | Complete |
| 2229 | Standard code conversion facets underspecified | Bristol | Complete |
| 2231 | DR 704 removes complexity guarantee for clear() | Bristol | Complete |
| 2235 | Undefined behavior without proper requirements on basic_string constructors | Bristol | Complete |
| 2091 | Misplaced effect in m.try_lock_for() | Bristol | Complete |
| 2092 | Vague Wording for condition_variable_any | Bristol | Complete |
| 2093 | Throws clause of condition_variable::wait with predicate | Bristol | Complete |
| 2094 | duration conversion overflow shouldn't participate in overload resolution | Bristol | Complete |
| 2122 | merge() stability for lists versus forward lists | Bristol | Complete |
| 2128 | Absence of global functions cbegin/cend | Bristol | Complete |
| 2145 | error_category default constructor | Bristol | Complete |
| 2147 | Unclear hint type in Allocator's allocate function | Bristol | Complete |
| 2148 | Hashing enums should be supported directly by std::hash | Bristol | Complete |
| 2149 | Concerns about 20.8/5 | Bristol | Complete |
| 2162 | allocator_traits::max_size missing noexcept | Bristol | Complete |
| 2163 | nth_element requires inconsistent post-conditions | Bristol | Complete |
| 2169 | Missing reset() requirements in unique_ptr specialization | Bristol | Complete |
| 2172 | Does atomic_compare_exchange_* accept v == nullptr arguments? | Bristol | Complete |
| 2080 | Specify when once_flag becomes invalid | Bristol | Complete |
| 2098 | promise throws clauses | Bristol | Complete |
| 2109 | Incorrect requirements for hash specializations | Bristol | Complete |
| 2130 | missing ordering constraints for fences | Bristol | Complete |
| 2138 | atomic_flag::clear ordering constraints | Bristol | Complete |
| 2140 | notify_all_at_thread_exit synchronization | Bristol | Complete |
| 2144 | Missing noexcept specification in type_index | Bristol | Complete |
| 2174 | wstring_convert::converted() should be noexcept | Bristol | Complete |
| 2175 | string_convert and wbuffer_convert validity | Bristol | Complete |
| 2176 | Special members for wstring_convert and wbuffer_convert | Bristol | Complete |
| 2177 | Requirements on Copy/MoveInsertable | Bristol | Complete |
| 2185 | Missing throws clause for future/shared_future::wait_for/wait_until | Bristol | Complete |
| 2187 | vector<bool> is missing emplace and emplace_back member functions | Bristol | Complete |
| 2190 | ordering of condition variable operations, reflects Posix discussion | Bristol | Complete |
| 2196 | Specification of is_*[copy/move]_[constructible/assignable] unclear for non-referencable types | Bristol | Complete |
| 2197 | Specification of is_[un]signed unclear for non-arithmetic types | Bristol | Complete |
| 2200 | Data race avoidance for all containers, not only for sequences | Bristol | Complete |
| 2203 | scoped_allocator_adaptor uses wrong argument types for piecewise construction | Bristol | Complete |
| 2207 | basic_string::at should not have a Requires clause | Bristol | Complete |
| 2209 | assign() overspecified for sequence containers | Bristol | Complete |
| 2210 | Missing allocator-extended constructor for allocator-aware containers | Bristol | Complete |
| 2211 | Replace ambiguous use of "Allocator" in container requirements | Bristol | Complete |
| 2222 | Inconsistency in description of forward_list::splice_after single-element overload | Bristol | Complete |
| 2225 | Unrealistic header inclusion checks required | Bristol | Complete |
| 2229 | Standard code conversion facets underspecified | Bristol | Complete |
| 2231 | DR 704 removes complexity guarantee for clear() | Bristol | Complete |
| 2235 | Undefined behavior without proper requirements on basic_string constructors | Bristol | Complete |
| 2141 | common_type trait produces reference types | Chicago | Complete |
| 2246 | unique_ptr assignment effects w.r.t. deleter | Chicago | Complete |
| 2247 | Type traits and std::nullptr_t | Chicago | Complete |
| 2085 | Wrong description of effect 1 of basic_istream::ignore | Chicago | Complete |
| 2087 | iostream_category() and noexcept | Chicago | Complete |
| 2143 | ios_base::xalloc should be thread-safe | Chicago | Complete |
| 2150 | Unclear specification of find_end | Chicago | Complete |
| 2180 | Exceptions from std::seed_seq operations | Chicago | Complete |
| 2194 | Impossible container requirements for adaptor types | Chicago | Complete |
| 2013 | Do library implementers have the freedom to add constexpr? | Chicago | Complete |
| 2018 | regex_traits::isctype Returns clause is wrong | Chicago | Complete |
| 2078 | Throw specification of async() incomplete | Chicago | Complete |
| 2097 | packaged_task constructors should be constrained | Chicago | Complete |
| 2100 | Timed waiting functions cannot timeout if launch::async policy used | Chicago | Complete |
| 2120 | What should async do if neither 'async' nor 'deferred' is set in policy? | Chicago | Complete |
| 2159 | atomic_flag initialization | Chicago | Complete |
| 2275 | Why is forward_as_tuple not constexpr? | Chicago | Complete |
| 2284 | Inconsistency in allocator_traits::max_size | Chicago | Complete |
| 2298 | is_nothrow_constructible is always false because of create<> | Chicago | Complete |
| 2300 | Redundant sections for map and multimap members should be removed | Chicago | Complete |
| 2141 | common_type trait produces reference types | Chicago | Complete |
| 2246 | unique_ptr assignment effects w.r.t. deleter | Chicago | Complete |
| 2247 | Type traits and std::nullptr_t | Chicago | Complete |
| 2085 | Wrong description of effect 1 of basic_istream::ignore | Chicago | Complete |
| 2087 | iostream_category() and noexcept | Chicago | Complete |
| 2143 | ios_base::xalloc should be thread-safe | Chicago | Complete |
| 2150 | Unclear specification of find_end | Chicago | Complete |
| 2180 | Exceptions from std::seed_seq operations | Chicago | Complete |
| 2194 | Impossible container requirements for adaptor types | Chicago | Complete |
| 2013 | Do library implementers have the freedom to add constexpr? | Chicago | Complete |
| 2018 | regex_traits::isctype Returns clause is wrong | Chicago | Complete |
| 2078 | Throw specification of async() incomplete | Chicago | Complete |
| 2097 | packaged_task constructors should be constrained | Chicago | Complete |
| 2100 | Timed waiting functions cannot timeout if launch::async policy used | Chicago | Complete |
| 2120 | What should async do if neither 'async' nor 'deferred' is set in policy? | Chicago | Complete |
| 2159 | atomic_flag initialization | Chicago | Complete |
| 2275 | Why is forward_as_tuple not constexpr? | Chicago | Complete |
| 2284 | Inconsistency in allocator_traits::max_size | Chicago | Complete |
| 2298 | is_nothrow_constructible is always false because of create<> | Chicago | Complete |
| 2300 | Redundant sections for map and multimap members should be removed | Chicago | Complete |
| NB comment: GB9 | Remove gets from C++14 | Chicago | Complete |
| 2135 | Unclear requirement for exceptions thrown in condition_variable::wait() | Issaquah | Complete |
| 2291 | std::hash is vulnerable to collision DoS attack | Issaquah | Complete |
| 2142 | packaged_task::operator() synchronization too broad? | Issaquah | Complete |
| 2240 | Probable misuse of term "function scope" in [thread.condition] | Issaquah | Complete |
| 2252 | Strong guarantee on vector::push_back() still broken with C++11? | Issaquah | Complete |
| 2257 | Simplify container requirements with the new algorithms | Issaquah | Complete |
| 2268 | Setting a default argument in the declaration of a member function assign of std::basic_string | Issaquah | Complete |
| 2271 | regex_traits::lookup_classname specification unclear | Issaquah | Complete |
| 2272 | quoted should use char_traits::eq for character comparison | Issaquah | Complete |
| 2278 | User-defined literals for Standard Library types | Issaquah | Complete |
| 2280 | begin / end for arrays should be constexpr and noexcept | Issaquah | Complete |
| 2285 | make_reverse_iterator | Issaquah | Complete |
| 2135 | Unclear requirement for exceptions thrown in condition_variable::wait() | Issaquah | Complete |
| 2291 | std::hash is vulnerable to collision DoS attack | Issaquah | Complete |
| 2142 | packaged_task::operator() synchronization too broad? | Issaquah | Complete |
| 2240 | Probable misuse of term "function scope" in [thread.condition] | Issaquah | Complete |
| 2252 | Strong guarantee on vector::push_back() still broken with C++11? | Issaquah | Complete |
| 2257 | Simplify container requirements with the new algorithms | Issaquah | Complete |
| 2268 | Setting a default argument in the declaration of a member function assign of std::basic_string | Issaquah | Complete |
| 2271 | regex_traits::lookup_classname specification unclear | Issaquah | Complete |
| 2272 | quoted should use char_traits::eq for character comparison | Issaquah | Complete |
| 2278 | User-defined literals for Standard Library types | Issaquah | Complete |
| 2280 | begin / end for arrays should be constexpr and noexcept | Issaquah | Complete |
| 2285 | make_reverse_iterator | Issaquah | Complete |
| 2299 | Effects of inaccessible key_compare::is_transparent type are not clear | Issaquah | Complete |
| 2299 | Effects of inaccessible key_compare::is_transparent type are not clear | Issaquah | Complete |
| 1450 | Contradiction in regex_constants | Issaquah | Complete |
| 2003 | String exception inconsistency in erase. | Issaquah | Complete |
| 2112 | User-defined classes that cannot be derived from | Issaquah | Complete |
| 2132 | std::function ambiguity | Issaquah | Complete |
| 2182 | Container::[const_]reference types are misleadingly specified | Issaquah | Complete |
| 2188 | Reverse iterator does not fully support targets that overload operator& | Issaquah | Complete |
| 2193 | Default constructors for standard library containers are explicit | Issaquah | Complete |
| 2205 | Problematic postconditions of regex_match and regex_search | Issaquah | Complete |
| 2213 | Return value of std::regex_replace | Issaquah | Complete |
| 1450 | Contradiction in regex_constants | Issaquah | Complete |
| 2003 | String exception inconsistency in erase. | Issaquah | Complete |
| 2112 | User-defined classes that cannot be derived from | Issaquah | Complete |
| 2132 | std::function ambiguity | Issaquah | Complete |
| 2182 | Container::[const_]reference types are misleadingly specified | Issaquah | Complete |
| 2188 | Reverse iterator does not fully support targets that overload operator& | Issaquah | Complete |
| 2193 | Default constructors for standard library containers are explicit | Issaquah | Complete |
| 2205 | Problematic postconditions of regex_match and regex_search | Issaquah | Complete |
| 2213 | Return value of std::regex_replace | Issaquah | Complete |
| 2258 | a.erase(q1, q2) unable to directly return q2 | Issaquah | Complete |
| 2263 | Comparing iterators and allocator pointers with different const-character | Issaquah | Complete |
| 2293 | Wrong facet used by num_put::do_put | Issaquah | Complete |
| 2301 | Why is std::tie not constexpr? | Issaquah | Complete |
| 2304 | Complexity of count in unordered associative containers | Issaquah | Complete |
| 2306 | match_results::reference should be value_type&, not const value_type& | Issaquah | Complete |
| 2308 | Clarify container destructor requirements w.r.t. std::array | Issaquah | Complete |
| 2313 | tuple_size should always derive from integral_constant | Issaquah | Complete |
| 2314 | apply() should return decltype(auto) and use decay_t before tuple_size | Issaquah | Complete |
| 2315 | weak_ptr should be movable | Issaquah | Complete |
| 2316 | weak_ptr::lock() should be atomic | Issaquah | Complete |
| 2317 | The type property queries should be UnaryTypeTraits returning size_t | Issaquah | Complete |
| 2320 | select_on_container_copy_construction() takes allocators, not containers | Issaquah | Complete |
| 2322 | Associative(initializer_list, stuff) constructors are underspecified | Issaquah | Complete |
| 2323 | vector::resize(n, t)'s specification should be simplified | Issaquah | Complete |
| 2324 | Insert iterator constructors should use addressof() | Issaquah | Complete |
| 2329 | regex_match()/regex_search() with match_results should forbid temporary strings | Issaquah | Complete |
| 2330 | regex("meow", regex::icase) is technically forbidden but should be permitted | Issaquah | Complete |
| 2332 | regex_iterator/regex_token_iterator should forbid temporary regexes | Issaquah | Complete |
| 2339 | Wording issue in nth_element | Issaquah | Complete |
| 2341 | Inconsistency between basic_ostream::seekp(pos) and basic_ostream::seekp(off, dir) | Issaquah | Complete |
| 2344 | quoted()'s interaction with padding is unclear | Issaquah | Complete |
| 2346 | integral_constant's member functions should be marked noexcept | Issaquah | Complete |
| 2350 | min, max, and minmax should be constexpr | Issaquah | Complete |
| 2356 | Stability of erasure in unordered associative containers | Issaquah | Complete |
| 2357 | Remaining "Assignable" requirement | Issaquah | Complete |
| 2359 | How does regex_constants::nosubs affect basic_regex::mark_count()? | Issaquah | Complete |
| 2360 | reverse_iterator::operator*() is unimplementable | Issaquah | Complete |
| 2104 | unique_lock move-assignment should not be noexcept | Issaquah | Complete |
| 2186 | Incomplete action on async/launch::deferred | Issaquah | Complete |
| 2075 | Progress guarantees, lock-free property, and scheduling assumptions | Issaquah | Complete |
| 2288 | Inconsistent requirements for shared mutexes | Issaquah | Complete |
| 2258 | a.erase(q1, q2) unable to directly return q2 | Issaquah | Complete |
| 2263 | Comparing iterators and allocator pointers with different const-character | Issaquah | Complete |
| 2293 | Wrong facet used by num_put::do_put | Issaquah | Complete |
| 2301 | Why is std::tie not constexpr? | Issaquah | Complete |
| 2304 | Complexity of count in unordered associative containers | Issaquah | Complete |
| 2306 | match_results::reference should be value_type&, not const value_type& | Issaquah | Complete |
| 2308 | Clarify container destructor requirements w.r.t. std::array | Issaquah | Complete |
| 2313 | tuple_size should always derive from integral_constant | Issaquah | Complete |
| 2314 | apply() should return decltype(auto) and use decay_t before tuple_size | Issaquah | Complete |
| 2315 | weak_ptr should be movable | Issaquah | Complete |
| 2316 | weak_ptr::lock() should be atomic | Issaquah | Complete |
| 2317 | The type property queries should be UnaryTypeTraits returning size_t | Issaquah | Complete |
| 2320 | select_on_container_copy_construction() takes allocators, not containers | Issaquah | Complete |
| 2322 | Associative(initializer_list, stuff) constructors are underspecified | Issaquah | Complete |
| 2323 | vector::resize(n, t)'s specification should be simplified | Issaquah | Complete |
| 2324 | Insert iterator constructors should use addressof() | Issaquah | Complete |
| 2329 | regex_match()/regex_search() with match_results should forbid temporary strings | Issaquah | Complete |
| 2330 | regex("meow", regex::icase) is technically forbidden but should be permitted | Issaquah | Complete |
| 2332 | regex_iterator/regex_token_iterator should forbid temporary regexes | Issaquah | Complete |
| 2339 | Wording issue in nth_element | Issaquah | Complete |
| 2341 | Inconsistency between basic_ostream::seekp(pos) and basic_ostream::seekp(off, dir) | Issaquah | Complete |
| 2344 | quoted()'s interaction with padding is unclear | Issaquah | Complete |
| 2346 | integral_constant's member functions should be marked noexcept | Issaquah | Complete |
| 2350 | min, max, and minmax should be constexpr | Issaquah | Complete |
| 2356 | Stability of erasure in unordered associative containers | Issaquah | Complete |
| 2357 | Remaining "Assignable" requirement | Issaquah | Complete |
| 2359 | How does regex_constants::nosubs affect basic_regex::mark_count()? | Issaquah | Complete |
| 2360 | reverse_iterator::operator*() is unimplementable | Issaquah | Complete |
| 2104 | unique_lock move-assignment should not be noexcept | Issaquah | Complete |
| 2186 | Incomplete action on async/launch::deferred | Issaquah | Complete |
| 2075 | Progress guarantees, lock-free property, and scheduling assumptions | Issaquah | Complete |
| 2288 | Inconsistent requirements for shared mutexes | Issaquah | Complete |
In November 2014, the C++ standard committee created a draft for the next version of the C++ standard, known here as "C++1z" (probably to be C++17).
In February 2017, the C++ standard committee approved this draft, and sent it to ISO for approval as C++17
-This page shows the status of libc++; the status of clang's support of the language features is here.
+This page shows the status of libc++; the status of clang's support of the language features is here.
Reminder: Features in unreleased drafts of the standard are subject to change.
@@ -53,119 +53,119 @@| Paper # | Group | Paper Name | Meeting | Status | First released version |
|---|---|---|---|---|---|
| N3911 | LWG | TransformationTrait Alias void_t. | Urbana | Complete | 3.6 |
| N4089 | LWG | Safe conversions in unique_ptr<T[]>. | Urbana | In progress | 3.9 |
| N4169 | LWG | A proposal to add invoke function template | Urbana | Complete | 3.7 |
| N4190 | LWG | Removing auto_ptr, random_shuffle(), And Old | Urbana | In progress | |
| N4258 | LWG | Cleaning-up noexcept in the Library. | Urbana | In progress | 3.7 |
| N4259 | CWG | Wording for std::uncaught_exceptions | Urbana | Complete | 3.7 |
| N4277 | LWG | TriviallyCopyable reference_wrapper. | Urbana | Complete | 3.2 |
| N4279 | LWG | Improved insertion interface for unique-key maps. | Urbana | Complete | 3.7 |
| N4280 | LWG | Non-member size() and more | Urbana | Complete | 3.6 |
| N4284 | LWG | Contiguous Iterators. | Urbana | Complete | 3.6 |
| N4285 | CWG | Cleanup for exception-specification and throw-expression. | Urbana | Complete | 4.0 |
| N3911 | LWG | TransformationTrait Alias void_t. | Urbana | Complete | 3.6 |
| N4089 | LWG | Safe conversions in unique_ptr<T[]>. | Urbana | In progress | 3.9 |
| N4169 | LWG | A proposal to add invoke function template | Urbana | Complete | 3.7 |
| N4190 | LWG | Removing auto_ptr, random_shuffle(), And Old | Urbana | In progress | |
| N4258 | LWG | Cleaning-up noexcept in the Library. | Urbana | In progress | 3.7 |
| N4259 | CWG | Wording for std::uncaught_exceptions | Urbana | Complete | 3.7 |
| N4277 | LWG | TriviallyCopyable reference_wrapper. | Urbana | Complete | 3.2 |
| N4279 | LWG | Improved insertion interface for unique-key maps. | Urbana | Complete | 3.7 |
| N4280 | LWG | Non-member size() and more | Urbana | Complete | 3.6 |
| N4284 | LWG | Contiguous Iterators. | Urbana | Complete | 3.6 |
| N4285 | CWG | Cleanup for exception-specification and throw-expression. | Urbana | Complete | 4.0 |
| N4387 | LWG | improving pair and tuple | Lenexa | Complete | 4.0 |
| N4389 | LWG | bool_constant | Lenexa | Complete | 3.7 |
| N4508 | LWG | shared_mutex for C++17 | Lenexa | Complete | 3.7 |
| N4366 | LWG | LWG 2228 missing SFINAE rule | Lenexa | Complete | 3.1 |
| N4510 | LWG | Minimal incomplete type support for standard containers, revision 4 | Lenexa | Complete | 3.6 |
| N4387 | LWG | improving pair and tuple | Lenexa | Complete | 4.0 |
| N4389 | LWG | bool_constant | Lenexa | Complete | 3.7 |
| N4508 | LWG | shared_mutex for C++17 | Lenexa | Complete | 3.7 |
| N4366 | LWG | LWG 2228 missing SFINAE rule | Lenexa | Complete | 3.1 |
| N4510 | LWG | Minimal incomplete type support for standard containers, revision 4 | Lenexa | Complete | 3.6 |
| P0004R1 | LWG | Remove Deprecated iostreams aliases. | Kona | Complete | 3.8 |
| P0006R0 | LWG | Adopt Type Traits Variable Templates for C++17. | Kona | Complete | 3.8 |
| P0092R1 | LWG | Polishing <chrono> | Kona | Complete | 3.8 |
| P0007R1 | LWG | Constant View: A proposal for a std::as_const helper function template. | Kona | Complete | 3.8 |
| P0156R0 | LWG | Variadic lock_guard(rev 3). | Kona | Reverted in Kona | 3.9 |
| P0074R0 | LWG | Making std::owner_less more flexible | Kona | Complete | 3.8 |
| P0013R1 | LWG | Logical type traits rev 2 | Kona | Complete | 3.8 |
| P0004R1 | LWG | Remove Deprecated iostreams aliases. | Kona | Complete | 3.8 |
| P0006R0 | LWG | Adopt Type Traits Variable Templates for C++17. | Kona | Complete | 3.8 |
| P0092R1 | LWG | Polishing <chrono> | Kona | Complete | 3.8 |
| P0007R1 | LWG | Constant View: A proposal for a std::as_const helper function template. | Kona | Complete | 3.8 |
| P0156R0 | LWG | Variadic lock_guard(rev 3). | Kona | Reverted in Kona | 3.9 |
| P0074R0 | LWG | Making std::owner_less more flexible | Kona | Complete | 3.8 |
| P0013R1 | LWG | Logical type traits rev 2 | Kona | Complete | 3.8 |
| P0024R2 | LWG | The Parallelism TS Should be Standardized | Jacksonville | ||
| P0226R1 | LWG | Mathematical Special Functions for C++17 | Jacksonville | ||
| P0220R1 | LWG | Adopt Library Fundamentals V1 TS Components for C++17 | Jacksonville | In Progress | |
| P0218R1 | LWG | Adopt the File System TS for C++17 | Jacksonville | In Progress | |
| P0033R1 | LWG | Re-enabling shared_from_this | Jacksonville | Complete | 3.9 |
| P0005R4 | LWG | Adopt not_fn from Library Fundamentals 2 for C++17 | Jacksonville | Complete | 3.9 |
| P0152R1 | LWG | constexpr atomic::is_always_lock_free | Jacksonville | Complete | 3.9 |
| P0185R1 | LWG | Adding [nothrow-]swappable traits | Jacksonville | Complete | 3.9 |
| P0253R1 | LWG | Fixing a design mistake in the searchers interface | Jacksonville | Complete | 3.9 |
| P0025R0 | LWG | An algorithm to "clamp" a value between a pair of boundary values | Jacksonville | Complete | 3.9 |
| P0154R1 | LWG | constexpr std::hardware_{constructive,destructive}_interference_size | Jacksonville | ||
| P0030R1 | LWG | Proposal to Introduce a 3-Argument Overload to std::hypot | Jacksonville | Complete | 3.9 |
| P0031R0 | LWG | A Proposal to Add Constexpr Modifiers to reverse_iterator, move_iterator, array and Range Access | Jacksonville | Complete | 4.0 |
| P0272R1 | LWG | Give std::string a non-const .data() member function | Jacksonville | Complete | 3.9 |
| P0077R2 | LWG | is_callable, the missing INVOKE related trait | Jacksonville | Complete | 3.9 |
| P0024R2 | LWG | The Parallelism TS Should be Standardized | Jacksonville | ||
| P0226R1 | LWG | Mathematical Special Functions for C++17 | Jacksonville | ||
| P0220R1 | LWG | Adopt Library Fundamentals V1 TS Components for C++17 | Jacksonville | In Progress | |
| P0218R1 | LWG | Adopt the File System TS for C++17 | Jacksonville | In Progress | |
| P0033R1 | LWG | Re-enabling shared_from_this | Jacksonville | Complete | 3.9 |
| P0005R4 | LWG | Adopt not_fn from Library Fundamentals 2 for C++17 | Jacksonville | Complete | 3.9 |
| P0152R1 | LWG | constexpr atomic::is_always_lock_free | Jacksonville | Complete | 3.9 |
| P0185R1 | LWG | Adding [nothrow-]swappable traits | Jacksonville | Complete | 3.9 |
| P0253R1 | LWG | Fixing a design mistake in the searchers interface | Jacksonville | Complete | 3.9 |
| P0025R0 | LWG | An algorithm to "clamp" a value between a pair of boundary values | Jacksonville | Complete | 3.9 |
| P0154R1 | LWG | constexpr std::hardware_{constructive,destructive}_interference_size | Jacksonville | ||
| P0030R1 | LWG | Proposal to Introduce a 3-Argument Overload to std::hypot | Jacksonville | Complete | 3.9 |
| P0031R0 | LWG | A Proposal to Add Constexpr Modifiers to reverse_iterator, move_iterator, array and Range Access | Jacksonville | Complete | 4.0 |
| P0272R1 | LWG | Give std::string a non-const .data() member function | Jacksonville | Complete | 3.9 |
| P0077R2 | LWG | is_callable, the missing INVOKE related trait | Jacksonville | Complete | 3.9 |
| p0032r3 | LWG | Homogeneous interface for variant, any and optional | Oulu | Complete | 4.0 |
| p0040r3 | LWG | Extending memory management tools | Oulu | Complete | 4.0 |
| p0063r3 | LWG | C++17 should refer to C11 instead of C99 | Oulu | Nothing to do | n/a |
| p0067r3 | LWG | Elementary string conversions | Oulu | Now P0067R5 | |
| p0083r3 | LWG | Splicing Maps and Sets | Oulu | ||
| p0084r2 | LWG | Emplace Return Type | Oulu | Complete | 4.0 |
| p0088r3 | LWG | Variant: a type-safe union for C++17 | Oulu | Complete | 4.0 |
| p0163r0 | LWG | shared_ptr::weak_type | Oulu | Complete | 3.9 |
| p0174r2 | LWG | Deprecating Vestigial Library Parts in C++17 | Oulu | ||
| p0175r1 | LWG | Synopses for the C library | Oulu | ||
| p0180r2 | LWG | Reserve a New Library Namespace for Future Standardization | Oulu | Nothing to do | n/a |
| p0181r1 | LWG | Ordered by Default | Oulu | Removed in Kona | n/a |
| p0209r2 | LWG | make_from_tuple: apply for construction | Oulu | Complete | 3.9 |
| p0219r1 | LWG | Relative Paths for Filesystem | Oulu | ||
| p0254r2 | LWG | Integrating std::string_view and std::string | Oulu | Complete | 4.0 |
| p0258r2 | LWG | has_unique_object_representations | Oulu | ||
| p0295r0 | LWG | Adopt Selected Library Fundamentals V2 Components for C++17 | Oulu | Complete | 4.0 |
| p0302r1 | LWG | Removing Allocator Support in std::function | Oulu | Complete | 4.0 |
| p0307r2 | LWG | Making Optional Greater Equal Again | Oulu | Complete | 4.0 |
| p0336r1 | LWG | Better Names for Parallel Execution Policies in C++17 | Oulu | ||
| p0337r0 | LWG | Delete operator= for polymorphic_allocator | Oulu | Complete | 3.9 |
| p0346r1 | LWG | A <random> Nomenclature Tweak | Oulu | Complete | 3.9 |
| p0358r1 | LWG | Fixes for not_fn | Oulu | Complete | 3.9 |
| p0371r1 | LWG | Temporarily discourage memory_order_consume | Oulu | Nothing to do | n/a |
| p0392r0 | LWG | Adapting string_view by filesystem paths | Oulu | Complete | 4.0 |
| p0393r3 | LWG | Making Variant Greater Equal | Oulu | Complete | 4.0 |
| P0394r4 | LWG | Hotel Parallelifornia: terminate() for Parallel Algorithms Exception Handling | Oulu | ||
| p0032r3 | LWG | Homogeneous interface for variant, any and optional | Oulu | Complete | 4.0 |
| p0040r3 | LWG | Extending memory management tools | Oulu | Complete | 4.0 |
| p0063r3 | LWG | C++17 should refer to C11 instead of C99 | Oulu | Nothing to do | n/a |
| p0067r3 | LWG | Elementary string conversions | Oulu | Now P0067R5 | |
| p0083r3 | LWG | Splicing Maps and Sets | Oulu | ||
| p0084r2 | LWG | Emplace Return Type | Oulu | Complete | 4.0 |
| p0088r3 | LWG | Variant: a type-safe union for C++17 | Oulu | Complete | 4.0 |
| p0163r0 | LWG | shared_ptr::weak_type | Oulu | Complete | 3.9 |
| p0174r2 | LWG | Deprecating Vestigial Library Parts in C++17 | Oulu | ||
| p0175r1 | LWG | Synopses for the C library | Oulu | ||
| p0180r2 | LWG | Reserve a New Library Namespace for Future Standardization | Oulu | Nothing to do | n/a |
| p0181r1 | LWG | Ordered by Default | Oulu | Removed in Kona | n/a |
| p0209r2 | LWG | make_from_tuple: apply for construction | Oulu | Complete | 3.9 |
| p0219r1 | LWG | Relative Paths for Filesystem | Oulu | ||
| p0254r2 | LWG | Integrating std::string_view and std::string | Oulu | Complete | 4.0 |
| p0258r2 | LWG | has_unique_object_representations | Oulu | ||
| p0295r0 | LWG | Adopt Selected Library Fundamentals V2 Components for C++17 | Oulu | Complete | 4.0 |
| p0302r1 | LWG | Removing Allocator Support in std::function | Oulu | Complete | 4.0 |
| p0307r2 | LWG | Making Optional Greater Equal Again | Oulu | Complete | 4.0 |
| p0336r1 | LWG | Better Names for Parallel Execution Policies in C++17 | Oulu | ||
| p0337r0 | LWG | Delete operator= for polymorphic_allocator | Oulu | Complete | 3.9 |
| p0346r1 | LWG | A <random> Nomenclature Tweak | Oulu | Complete | 3.9 |
| p0358r1 | LWG | Fixes for not_fn | Oulu | Complete | 3.9 |
| p0371r1 | LWG | Temporarily discourage memory_order_consume | Oulu | Nothing to do | n/a |
| p0392r0 | LWG | Adapting string_view by filesystem paths | Oulu | Complete | 4.0 |
| p0393r3 | LWG | Making Variant Greater Equal | Oulu | Complete | 4.0 |
| P0394r4 | LWG | Hotel Parallelifornia: terminate() for Parallel Algorithms Exception Handling | Oulu | ||
| P0003R5 | LWG | Removing Deprecated Exception Specifications from C++17 | Issaquah | Complete | 5.0 |
| P0067R5 | LWG | Elementary string conversions, revision 5 | Issaquah | ||
| P0403R1 | LWG | Literal suffixes for basic_string_view | Issaquah | Complete | 4.0 |
| P0414R2 | LWG | Merging shared_ptr changes from Library Fundamentals to C++17 | Issaquah | ||
| P0418R2 | LWG | Fail or succeed: there is no atomic lattice | Issaquah | ||
| P0426R1 | LWG | Constexpr for std::char_traits | Issaquah | Complete | 4.0 |
| P0435R1 | LWG | Resolving LWG Issues re common_type | Issaquah | Complete | 4.0 |
| P0502R0 | LWG | Throwing out of a parallel algorithm terminates - but how? | Issaquah | ||
| P0503R0 | LWG | Correcting library usage of "literal type" | Issaquah | Complete | 4.0 |
| P0504R0 | LWG | Revisiting in-place tag types for any/optional/variant | Issaquah | Complete | 4.0 |
| P0505R0 | LWG | Wording for GB 50 - constexpr for chrono | Issaquah | Complete | 4.0 |
| P0508R0 | LWG | Wording for GB 58 - structured bindings for node_handles | Issaquah | ||
| P0509R1 | LWG | Updating “Restrictions on exception handling” | Issaquah | Nothing to do | n/a |
| P0510R0 | LWG | Disallowing references, incomplete types, arrays, and empty variants | Issaquah | Complete | 4.0 |
| P0513R0 | LWG | Poisoning the Hash | Issaquah | Complete | 5.0 |
| P0516R0 | LWG | Clarify That shared_future’s Copy Operations have Wide Contracts | Issaquah | Complete | 4.0 |
| P0517R0 | LWG | Make future_error Constructible | Issaquah | Complete | 4.0 |
| P0521R0 | LWG | Proposed Resolution for CA 14 (shared_ptr use_count/unique) | Issaquah | Nothing to do | n/a |
| P0003R5 | LWG | Removing Deprecated Exception Specifications from C++17 | Issaquah | Complete | 5.0 |
| P0067R5 | LWG | Elementary string conversions, revision 5 | Issaquah | ||
| P0403R1 | LWG | Literal suffixes for basic_string_view | Issaquah | Complete | 4.0 |
| P0414R2 | LWG | Merging shared_ptr changes from Library Fundamentals to C++17 | Issaquah | ||
| P0418R2 | LWG | Fail or succeed: there is no atomic lattice | Issaquah | ||
| P0426R1 | LWG | Constexpr for std::char_traits | Issaquah | Complete | 4.0 |
| P0435R1 | LWG | Resolving LWG Issues re common_type | Issaquah | Complete | 4.0 |
| P0502R0 | LWG | Throwing out of a parallel algorithm terminates - but how? | Issaquah | ||
| P0503R0 | LWG | Correcting library usage of "literal type" | Issaquah | Complete | 4.0 |
| P0504R0 | LWG | Revisiting in-place tag types for any/optional/variant | Issaquah | Complete | 4.0 |
| P0505R0 | LWG | Wording for GB 50 - constexpr for chrono | Issaquah | Complete | 4.0 |
| P0508R0 | LWG | Wording for GB 58 - structured bindings for node_handles | Issaquah | ||
| P0509R1 | LWG | Updating “Restrictions on exception handling” | Issaquah | Nothing to do | n/a |
| P0510R0 | LWG | Disallowing references, incomplete types, arrays, and empty variants | Issaquah | Complete | 4.0 |
| P0513R0 | LWG | Poisoning the Hash | Issaquah | Complete | 5.0 |
| P0516R0 | LWG | Clarify That shared_future’s Copy Operations have Wide Contracts | Issaquah | Complete | 4.0 |
| P0517R0 | LWG | Make future_error Constructible | Issaquah | Complete | 4.0 |
| P0521R0 | LWG | Proposed Resolution for CA 14 (shared_ptr use_count/unique) | Issaquah | Nothing to do | n/a |
| P0156R2 | LWG | Variadic Lock guard(rev 5) | Kona | Complete | 5.0 |
| P0270R3 | CWG | Removing C dependencies from signal handler wording | Kona | ||
| P0298R3 | CWG | A byte type definition | Kona | Complete | 5.0 |
| P0317R1 | LWG | Directory Entry Caching for Filesystem | Kona | ||
| P0430R2 | LWG | File system library on non-POSIX-like operating systems | Kona | ||
| P0433R2 | LWG | Toward a resolution of US7 and US14: Integrating template deduction for class templates into the standard library | Kona | ||
| P0452R1 | LWG | Unifying <numeric> Parallel Algorithms | Kona | ||
| P0467R2 | LWG | Iterator Concerns for Parallel Algorithms | Kona | ||
| P0492R2 | LWG | Proposed Resolution of C++17 National Body Comments for Filesystems | Kona | ||
| P0518R1 | LWG | Allowing copies as arguments to function objects given to parallel algorithms in response to CH11 | Kona | ||
| P0523R1 | LWG | Wording for CH 10: Complexity of parallel algorithms | Kona | ||
| P0548R1 | LWG | common_type and duration | Kona | Complete | 5.0 |
| P0558R1 | LWG | Resolving atomic<T> named base class inconsistencies | Kona | ||
| P0574R1 | LWG | Algorithm Complexity Constraints and Parallel Overloads | Kona | ||
| P0599R1 | LWG | noexcept for hash functions | Kona | Complete | 5.0 |
| P0604R0 | LWG | Resolving GB 55, US 84, US 85, US 86 | Kona | ||
| P0607R0 | LWG | Inline Variables for the Standard Library | Kona | ||
| P0618R0 | LWG | Deprecating <codecvt> | Kona | ||
| P0623R0 | LWG | Final C++17 Parallel Algorithms Fixes | Kona | ||
| P0156R2 | LWG | Variadic Lock guard(rev 5) | Kona | Complete | 5.0 |
| P0270R3 | CWG | Removing C dependencies from signal handler wording | Kona | ||
| P0298R3 | CWG | A byte type definition | Kona | Complete | 5.0 |
| P0317R1 | LWG | Directory Entry Caching for Filesystem | Kona | ||
| P0430R2 | LWG | File system library on non-POSIX-like operating systems | Kona | ||
| P0433R2 | LWG | Toward a resolution of US7 and US14: Integrating template deduction for class templates into the standard library | Kona | ||
| P0452R1 | LWG | Unifying <numeric> Parallel Algorithms | Kona | ||
| P0467R2 | LWG | Iterator Concerns for Parallel Algorithms | Kona | ||
| P0492R2 | LWG | Proposed Resolution of C++17 National Body Comments for Filesystems | Kona | ||
| P0518R1 | LWG | Allowing copies as arguments to function objects given to parallel algorithms in response to CH11 | Kona | ||
| P0523R1 | LWG | Wording for CH 10: Complexity of parallel algorithms | Kona | ||
| P0548R1 | LWG | common_type and duration | Kona | Complete | 5.0 |
| P0558R1 | LWG | Resolving atomic<T> named base class inconsistencies | Kona | ||
| P0574R1 | LWG | Algorithm Complexity Constraints and Parallel Overloads | Kona | ||
| P0599R1 | LWG | noexcept for hash functions | Kona | Complete | 5.0 |
| P0604R0 | LWG | Resolving GB 55, US 84, US 85, US 86 | Kona | ||
| P0607R0 | LWG | Inline Variables for the Standard Library | Kona | ||
| P0618R0 | LWG | Deprecating <codecvt> | Kona | ||
| P0623R0 | LWG | Final C++17 Parallel Algorithms Fixes | Kona | ||
| P0682R1 | LWG | Repairing elementary string conversions | Toronto | ||
| P0739R0 | LWG | Some improvements to class template argument deduction integration into the standard library | Toronto | Complete | 5.0 |
| P0682R1 | LWG | Repairing elementary string conversions | Toronto | ||
| P0739R0 | LWG | Some improvements to class template argument deduction integration into the standard library | Toronto | Complete | 5.0 |
| Issue # | Issue Name | Meeting | Status |
|---|---|---|---|
| 2016 | Allocators must be no-throw swappable | Urbana | Complete |
| 2118 | unique_ptr for array does not support cv qualification conversion of actual argument | Urbana | Complete |
| 2170 | Aggregates cannot be DefaultConstructible | Urbana | Complete |
| 2308 | Clarify container destructor requirements w.r.t. std::array | Urbana | Complete |
| 2340 | Replacement allocation functions declared as inline | Urbana | Complete |
| 2354 | Unnecessary copying when inserting into maps with braced-init syntax | Urbana | Complete |
| 2377 | std::align requirements overly strict | Urbana | Complete |
| 2396 | underlying_type doesn't say what to do for an incomplete enumeration type | Urbana | Complete |
| 2399 | shared_ptr's constructor from unique_ptr should be constrained | Urbana | Complete |
| 2400 | shared_ptr's get_deleter() should use addressof() | Urbana | Complete |
| 2401 | std::function needs more noexcept | Urbana | Complete |
| 2404 | mismatch()'s complexity needs to be updated | Urbana | Complete |
| 2408 | SFINAE-friendly common_type / iterator_traits is missing in C++14 | Urbana | Complete |
| 2016 | Allocators must be no-throw swappable | Urbana | Complete |
| 2118 | unique_ptr for array does not support cv qualification conversion of actual argument | Urbana | Complete |
| 2170 | Aggregates cannot be DefaultConstructible | Urbana | Complete |
| 2308 | Clarify container destructor requirements w.r.t. std::array | Urbana | Complete |
| 2340 | Replacement allocation functions declared as inline | Urbana | Complete |
| 2354 | Unnecessary copying when inserting into maps with braced-init syntax | Urbana | Complete |
| 2377 | std::align requirements overly strict | Urbana | Complete |
| 2396 | underlying_type doesn't say what to do for an incomplete enumeration type | Urbana | Complete |
| 2399 | shared_ptr's constructor from unique_ptr should be constrained | Urbana | Complete |
| 2400 | shared_ptr's get_deleter() should use addressof() | Urbana | Complete |
| 2401 | std::function needs more noexcept | Urbana | Complete |
| 2404 | mismatch()'s complexity needs to be updated | Urbana | Complete |
| 2408 | SFINAE-friendly common_type / iterator_traits is missing in C++14 | Urbana | Complete |
| 2106 | move_iterator wrapping iterators returning prvalues | Urbana | Complete |
| 2129 | User specializations of std::initializer_list | Urbana | Complete |
| 2212 | tuple_size for const pair request | Urbana | Complete |
| 2217 | operator==(sub_match, string) slices on embedded '\0's | Urbana | Complete |
| 2230 | "see below" for initializer_list constructors of unordered containers | Urbana | Complete |
| 2233 | bad_function_call::what() unhelpful | Urbana | Complete |
| 2266 | vector and deque have incorrect insert requirements | Urbana | Complete |
| 2325 | minmax_element()'s behavior differing from max_element()'s should be noted | Urbana | Complete |
| 2361 | Apply 2299 resolution throughout library | Urbana | Complete |
| 2365 | Missing noexcept in shared_ptr::shared_ptr(nullptr_t) | Urbana | Complete |
| 2376 | bad_weak_ptr::what() overspecified | Urbana | Complete |
| 2387 | More nested types that must be accessible and unambiguous | Urbana | Complete |
| 2106 | move_iterator wrapping iterators returning prvalues | Urbana | Complete |
| 2129 | User specializations of std::initializer_list | Urbana | Complete |
| 2212 | tuple_size for const pair request | Urbana | Complete |
| 2217 | operator==(sub_match, string) slices on embedded '\0's | Urbana | Complete |
| 2230 | "see below" for initializer_list constructors of unordered containers | Urbana | Complete |
| 2233 | bad_function_call::what() unhelpful | Urbana | Complete |
| 2266 | vector and deque have incorrect insert requirements | Urbana | Complete |
| 2325 | minmax_element()'s behavior differing from max_element()'s should be noted | Urbana | Complete |
| 2361 | Apply 2299 resolution throughout library | Urbana | Complete |
| 2365 | Missing noexcept in shared_ptr::shared_ptr(nullptr_t) | Urbana | Complete |
| 2376 | bad_weak_ptr::what() overspecified | Urbana | Complete |
| 2387 | More nested types that must be accessible and unambiguous | Urbana | Complete |
| 2059 | C++0x ambiguity problem with map::erase | Lenexa | Complete |
| 2063 | Contradictory requirements for string move assignment | Lenexa | Complete |
| 2076 | Bad CopyConstructible requirement in set constructors | Lenexa | Complete |
| 2160 | Unintended destruction ordering-specification of resize | Lenexa | Complete |
| 2168 | Inconsistent specification of uniform_real_distribution constructor | Lenexa | Complete |
| 2239 | min/max/minmax requirements | Lenexa | Complete |
| 2364 | deque and vector pop_back don't specify iterator invalidation requirements | Lenexa | Complete |
| 2369 | constexpr max(initializer_list) vs max_element | Lenexa | Complete |
| 2378 | Behaviour of standard exception types | Lenexa | Complete |
| 2403 | stof() should call strtof() and wcstof() | Lenexa | Complete |
| 2406 | negative_binomial_distribution should reject p == 1 | Lenexa | Complete |
| 2407 | packaged_task(allocator_arg_t, const Allocator&, F&&) should neither be constrained nor explicit | Lenexa | Complete |
| 2411 | shared_ptr is only contextually convertible to bool | Lenexa | Complete |
| 2415 | Inconsistency between unique_ptr and shared_ptr | Lenexa | Complete |
| 2420 | function | Lenexa | Complete |
| 2425 | operator delete(void*, size_t) doesn't invalidate pointers sufficiently | Lenexa | Complete |
| 2427 | Container adaptors as sequence containers, redux | Lenexa | Complete |
| 2428 | "External declaration" used without being defined | Lenexa | Complete |
| 2433 | uninitialized_copy()/etc. should tolerate overloaded operator& | Lenexa | Complete |
| 2434 | shared_ptr::use_count() is efficient | Lenexa | Complete |
| 2437 | iterator_traits::reference can and can't be void | Lenexa | Complete |
| 2438 | std::iterator inheritance shouldn't be mandated | Lenexa | Complete |
| 2439 | unique_copy() sometimes can't fall back to reading its output | Lenexa | Complete |
| 2440 | seed_seq::size() should be noexcept | Lenexa | Complete |
| 2442 | call_once() shouldn't DECAY_COPY() | Lenexa | Complete |
| 2448 | Non-normative Container destructor specification | Lenexa | Complete |
| 2454 | Add raw_storage_iterator::base() member | Lenexa | Complete |
| 2455 | Allocator default construction should be allowed to throw | Lenexa | Complete |
| 2458 | N3778 and new library deallocation signatures | Lenexa | Complete |
| 2459 | std::polar should require a non-negative rho | Lenexa | Complete |
| 2464 | try_emplace and insert_or_assign misspecified | Lenexa | Complete |
| 2467 | is_always_equal has slightly inconsistent default | Lenexa | Complete |
| 2470 | Allocator's destroy function should be allowed to fail to instantiate | Lenexa | Complete |
| 2482 | [c.strings] Table 73 mentions nonexistent functions | Lenexa | Complete |
| 2488 | Placeholders should be allowed and encouraged to be constexpr | Lenexa | Complete |
| 2059 | C++0x ambiguity problem with map::erase | Lenexa | Complete |
| 2063 | Contradictory requirements for string move assignment | Lenexa | Complete |
| 2076 | Bad CopyConstructible requirement in set constructors | Lenexa | Complete |
| 2160 | Unintended destruction ordering-specification of resize | Lenexa | Complete |
| 2168 | Inconsistent specification of uniform_real_distribution constructor | Lenexa | Complete |
| 2239 | min/max/minmax requirements | Lenexa | Complete |
| 2364 | deque and vector pop_back don't specify iterator invalidation requirements | Lenexa | Complete |
| 2369 | constexpr max(initializer_list) vs max_element | Lenexa | Complete |
| 2378 | Behaviour of standard exception types | Lenexa | Complete |
| 2403 | stof() should call strtof() and wcstof() | Lenexa | Complete |
| 2406 | negative_binomial_distribution should reject p == 1 | Lenexa | Complete |
| 2407 | packaged_task(allocator_arg_t, const Allocator&, F&&) should neither be constrained nor explicit | Lenexa | Complete |
| 2411 | shared_ptr is only contextually convertible to bool | Lenexa | Complete |
| 2415 | Inconsistency between unique_ptr and shared_ptr | Lenexa | Complete |
| 2420 | function | Lenexa | Complete |
| 2425 | operator delete(void*, size_t) doesn't invalidate pointers sufficiently | Lenexa | Complete |
| 2427 | Container adaptors as sequence containers, redux | Lenexa | Complete |
| 2428 | "External declaration" used without being defined | Lenexa | Complete |
| 2433 | uninitialized_copy()/etc. should tolerate overloaded operator& | Lenexa | Complete |
| 2434 | shared_ptr::use_count() is efficient | Lenexa | Complete |
| 2437 | iterator_traits::reference can and can't be void | Lenexa | Complete |
| 2438 | std::iterator inheritance shouldn't be mandated | Lenexa | Complete |
| 2439 | unique_copy() sometimes can't fall back to reading its output | Lenexa | Complete |
| 2440 | seed_seq::size() should be noexcept | Lenexa | Complete |
| 2442 | call_once() shouldn't DECAY_COPY() | Lenexa | Complete |
| 2448 | Non-normative Container destructor specification | Lenexa | Complete |
| 2454 | Add raw_storage_iterator::base() member | Lenexa | Complete |
| 2455 | Allocator default construction should be allowed to throw | Lenexa | Complete |
| 2458 | N3778 and new library deallocation signatures | Lenexa | Complete |
| 2459 | std::polar should require a non-negative rho | Lenexa | Complete |
| 2464 | try_emplace and insert_or_assign misspecified | Lenexa | Complete |
| 2467 | is_always_equal has slightly inconsistent default | Lenexa | Complete |
| 2470 | Allocator's destroy function should be allowed to fail to instantiate | Lenexa | Complete |
| 2482 | [c.strings] Table 73 mentions nonexistent functions | Lenexa | Complete |
| 2488 | Placeholders should be allowed and encouraged to be constexpr | Lenexa | Complete |
| 1169 | num_get not fully compatible with strto* | Kona | Complete |
| 2072 | Unclear wording about capacity of temporary buffers | Kona | Complete |
| 2101 | Some transformation types can produce impossible types | Kona | Complete |
| 2111 | Which unexpected/terminate handler is called from the exception handling runtime? | Kona | Complete |
| 2119 | Missing hash specializations for extended integer types | Kona | Complete |
| 2127 | Move-construction with raw_storage_iterator | Kona | Complete |
| 2133 | Attitude to overloaded comma for iterators | Kona | Complete |
| 2156 | Unordered containers' reserve(n) reserves for n-1 elements | Kona | Complete |
| 2218 | Unclear how containers use allocator_traits::construct() | Kona | Complete |
| 2219 | INVOKE-ing a pointer to member with a reference_wrapper as the object expression | Kona | Complete |
| 2224 | Ambiguous status of access to non-live objects | Kona | Complete |
| 2234 | assert() should allow usage in constant expressions | Kona | Complete |
| 2244 | Issue on basic_istream::seekg | Kona | Complete |
| 2250 | Follow-up On Library Issue 2207 | Kona | Complete |
| 2259 | Issues in 17.6.5.5 rules for member functions | Kona | Complete |
| 2273 | regex_match ambiguity | Kona | |
| 2336 | is_trivially_constructible/is_trivially_assignable traits are always false | Kona | Complete |
| 2353 | std::next is over-constrained | Kona | Complete |
| 2367 | pair and tuple are not correctly implemented for is_constructible with no args | Kona | Complete |
| 2380 | May <cstdlib> provide long ::abs(long) and long long ::abs(long long)? | Kona | Complete |
| 2384 | Allocator's deallocate function needs better specification | Kona | Complete |
| 2385 | function::assign allocator argument doesn't make sense | Kona | Complete |
| 2435 | reference_wrapper::operator()'s Remark should be deleted | Kona | Complete |
| 2447 | Allocators and volatile-qualified value types | Kona | Complete |
| 2462 | std::ios_base::failure is overspecified | Kona | Complete |
| 2466 | allocator_traits::max_size() default behavior is incorrect | Kona | Complete |
| 2469 | Wrong specification of Requires clause of operator[] for map and unordered_map | Kona | Complete |
| 2473 | basic_filebuf's relation to C FILE semantics | Kona | Complete |
| 2476 | scoped_allocator_adaptor is not assignable | Kona | Complete |
| 2477 | Inconsistency of wordings in std::vector::erase() and std::deque::erase() | Kona | Complete |
| 2483 | throw_with_nested() should use is_final | Kona | Complete |
| 2484 | rethrow_if_nested() is doubly unimplementable | Kona | Complete |
| 2485 | get() should be overloaded for const tuple&& | Kona | Complete |
| 2486 | mem_fn() should be required to use perfect forwarding | Kona | Complete |
| 2487 | bind() should be const-overloaded, not cv-overloaded | Kona | Complete |
| 2489 | mem_fn() should be noexcept | Kona | Complete |
| 2492 | Clarify requirements for comp | Kona | Complete |
| 2495 | There is no such thing as an Exception Safety element | Kona | Complete |
| 1169 | num_get not fully compatible with strto* | Kona | Complete |
| 2072 | Unclear wording about capacity of temporary buffers | Kona | Complete |
| 2101 | Some transformation types can produce impossible types | Kona | Complete |
| 2111 | Which unexpected/terminate handler is called from the exception handling runtime? | Kona | Complete |
| 2119 | Missing hash specializations for extended integer types | Kona | Complete |
| 2127 | Move-construction with raw_storage_iterator | Kona | Complete |
| 2133 | Attitude to overloaded comma for iterators | Kona | Complete |
| 2156 | Unordered containers' reserve(n) reserves for n-1 elements | Kona | Complete |
| 2218 | Unclear how containers use allocator_traits::construct() | Kona | Complete |
| 2219 | INVOKE-ing a pointer to member with a reference_wrapper as the object expression | Kona | Complete |
| 2224 | Ambiguous status of access to non-live objects | Kona | Complete |
| 2234 | assert() should allow usage in constant expressions | Kona | Complete |
| 2244 | Issue on basic_istream::seekg | Kona | Complete |
| 2250 | Follow-up On Library Issue 2207 | Kona | Complete |
| 2259 | Issues in 17.6.5.5 rules for member functions | Kona | Complete |
| 2273 | regex_match ambiguity | Kona | |
| 2336 | is_trivially_constructible/is_trivially_assignable traits are always false | Kona | Complete |
| 2353 | std::next is over-constrained | Kona | Complete |
| 2367 | pair and tuple are not correctly implemented for is_constructible with no args | Kona | Complete |
| 2380 | May <cstdlib> provide long ::abs(long) and long long ::abs(long long)? | Kona | Complete |
| 2384 | Allocator's deallocate function needs better specification | Kona | Complete |
| 2385 | function::assign allocator argument doesn't make sense | Kona | Complete |
| 2435 | reference_wrapper::operator()'s Remark should be deleted | Kona | Complete |
| 2447 | Allocators and volatile-qualified value types | Kona | Complete |
| 2462 | std::ios_base::failure is overspecified | Kona | Complete |
| 2466 | allocator_traits::max_size() default behavior is incorrect | Kona | Complete |
| 2469 | Wrong specification of Requires clause of operator[] for map and unordered_map | Kona | Complete |
| 2473 | basic_filebuf's relation to C FILE semantics | Kona | Complete |
| 2476 | scoped_allocator_adaptor is not assignable | Kona | Complete |
| 2477 | Inconsistency of wordings in std::vector::erase() and std::deque::erase() | Kona | Complete |
| 2483 | throw_with_nested() should use is_final | Kona | Complete |
| 2484 | rethrow_if_nested() is doubly unimplementable | Kona | Complete |
| 2485 | get() should be overloaded for const tuple&& | Kona | Complete |
| 2486 | mem_fn() should be required to use perfect forwarding | Kona | Complete |
| 2487 | bind() should be const-overloaded, not cv-overloaded | Kona | Complete |
| 2489 | mem_fn() should be noexcept | Kona | Complete |
| 2492 | Clarify requirements for comp | Kona | Complete |
| 2495 | There is no such thing as an Exception Safety element | Kona | Complete |
| 2192 | Validity and return type of std::abs(0u) is unclear | Jacksonville | |
| 2276 | Missing requirement on std::promise::set_exception | Jacksonville | Complete |
| 2296 | std::addressof should be constexpr | Jacksonville | Complete (Clang Only) |
| 2450 | (greater|less|greater_equal|less_equal)<void> do not yield a total order for pointers | Jacksonville | Complete |
| 2520 | N4089 broke initializing unique_ptr<T[]> from a nullptr | Jacksonville | Complete |
| 2522 | [fund.ts.v2] Contradiction in set_default_resource specification | Jacksonville | Complete |
| 2523 | std::promise synopsis shows two set_value_at_thread_exit()'s for no apparent reason | Jacksonville | Complete |
| 2537 | Constructors for priority_queue taking allocators should call make_heap | Jacksonville | Complete |
| 2539 | [fund.ts.v2] invocation_trait definition definition doesn't work for surrogate call functions | Jacksonville | |
| 2545 | Simplify wording for bind without explicitly specified return type | Jacksonville | Complete |
| 2557 | Logical operator traits are broken in the zero-argument case | Jacksonville | Complete |
| 2558 | [fund.ts.v2] Logical operator traits are broken in the zero-argument case | Jacksonville | Complete |
| 2559 | Error in LWG 2234's resolution | Jacksonville | Complete |
| 2560 | is_constructible underspecified when applied to a function type | Jacksonville | Broken in 3.6; See r261653. |
| 2565 | std::function's move constructor should guarantee nothrow for reference_wrappers and function pointers | Jacksonville | Complete |
| 2566 | Requirements on the first template parameter of container adaptors | Jacksonville | Complete |
| 2571 | §[map.modifiers]/2 imposes nonsensical requirement on insert(InputIterator, InputIterator) | Jacksonville | Complete |
| 2572 | The remarks for shared_ptr::operator* should apply to cv-qualified void as well | Jacksonville | Complete |
| 2574 | [fund.ts.v2] std::experimental::function::operator=(F&&) should be constrained | Jacksonville | |
| 2575 | [fund.ts.v2] experimental::function::assign should be removed | Jacksonville | |
| 2576 | istream_iterator and ostream_iterator should use std::addressof | Jacksonville | Complete |
| 2577 | {shared,unique}_lock should use std::addressof | Jacksonville | Complete |
| 2579 | Inconsistency wrt Allocators in basic_string assignment vs. basic_string::assign | Jacksonville | Complete |
| 2581 | Specialization of <type_traits> variable templates should be prohibited | Jacksonville | Complete |
| 2582 | §[res.on.functions]/2's prohibition against incomplete types shouldn't apply to type traits | Jacksonville | Complete |
| 2583 | There is no way to supply an allocator for basic_string(str, pos) | Jacksonville | Complete |
| 2585 | forward_list::resize(size_type, const value_type&) effects incorrect | Jacksonville | Complete |
| 2586 | Wrong value category used in scoped_allocator_adaptor::construct() | Jacksonville | |
| 2590 | Aggregate initialization for std::array | Jacksonville | Complete |
| 2192 | Validity and return type of std::abs(0u) is unclear | Jacksonville | |
| 2276 | Missing requirement on std::promise::set_exception | Jacksonville | Complete |
| 2296 | std::addressof should be constexpr | Jacksonville | Complete (Clang Only) |
| 2450 | (greater|less|greater_equal|less_equal)<void> do not yield a total order for pointers | Jacksonville | Complete |
| 2520 | N4089 broke initializing unique_ptr<T[]> from a nullptr | Jacksonville | Complete |
| 2522 | [fund.ts.v2] Contradiction in set_default_resource specification | Jacksonville | Complete |
| 2523 | std::promise synopsis shows two set_value_at_thread_exit()'s for no apparent reason | Jacksonville | Complete |
| 2537 | Constructors for priority_queue taking allocators should call make_heap | Jacksonville | Complete |
| 2539 | [fund.ts.v2] invocation_trait definition definition doesn't work for surrogate call functions | Jacksonville | |
| 2545 | Simplify wording for bind without explicitly specified return type | Jacksonville | Complete |
| 2557 | Logical operator traits are broken in the zero-argument case | Jacksonville | Complete |
| 2558 | [fund.ts.v2] Logical operator traits are broken in the zero-argument case | Jacksonville | Complete |
| 2559 | Error in LWG 2234's resolution | Jacksonville | Complete |
| 2560 | is_constructible underspecified when applied to a function type | Jacksonville | Broken in 3.6; See r261653. |
| 2565 | std::function's move constructor should guarantee nothrow for reference_wrappers and function pointers | Jacksonville | Complete |
| 2566 | Requirements on the first template parameter of container adaptors | Jacksonville | Complete |
| 2571 | §[map.modifiers]/2 imposes nonsensical requirement on insert(InputIterator, InputIterator) | Jacksonville | Complete |
| 2572 | The remarks for shared_ptr::operator* should apply to cv-qualified void as well | Jacksonville | Complete |
| 2574 | [fund.ts.v2] std::experimental::function::operator=(F&&) should be constrained | Jacksonville | |
| 2575 | [fund.ts.v2] experimental::function::assign should be removed | Jacksonville | |
| 2576 | istream_iterator and ostream_iterator should use std::addressof | Jacksonville | Complete |
| 2577 | {shared,unique}_lock should use std::addressof | Jacksonville | Complete |
| 2579 | Inconsistency wrt Allocators in basic_string assignment vs. basic_string::assign | Jacksonville | Complete |
| 2581 | Specialization of <type_traits> variable templates should be prohibited | Jacksonville | Complete |
| 2582 | §[res.on.functions]/2's prohibition against incomplete types shouldn't apply to type traits | Jacksonville | Complete |
| 2583 | There is no way to supply an allocator for basic_string(str, pos) | Jacksonville | Complete |
| 2585 | forward_list::resize(size_type, const value_type&) effects incorrect | Jacksonville | Complete |
| 2586 | Wrong value category used in scoped_allocator_adaptor::construct() | Jacksonville | |
| 2590 | Aggregate initialization for std::array | Jacksonville | Complete |
| 2181 | Exceptions from seed sequence operations | Oulu | Complete |
| 2309 | mutex::lock() should not throw device_or_resource_busy | Oulu | Complete |
| 2310 | Public exposition only member in std::array | Oulu | Complete |
| 2312 | tuple's constructor constraints need to be phrased more precisely | Oulu | Complete |
| 2328 | Rvalue stream extraction should use perfect forwarding | Oulu | Complete |
| 2393 | std::function's Callable definition is broken | Oulu | Complete |
| 2422 | std::numeric_limits<T>::is_modulo description: "most machines" errata | Oulu | Complete |
| 2426 | Issue about compare_exchange | Oulu | |
| 2436 | Comparators for associative containers should always be CopyConstructible | Oulu | Complete |
| 2441 | Exact-width atomic typedefs should be provided | Oulu | Complete |
| 2451 | [fund.ts.v2] optional 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 | Complete |
| 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 | Complete |
| 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> does not work for arrays | Oulu | |
| 2596 | vector::data() should use addressof | Oulu | Complete |
| 2667 | path::root_directory() description is confusing | Oulu | Complete |
| 2669 | recursive_directory_iterator effects refers to non-existent functions | Oulu | Complete |
| 2670 | system_complete refers to undefined variable 'base' | Oulu | Complete |
| 2671 | Errors in Copy | Oulu | Complete |
| 2673 | status() effects cannot be implemented as specified | Oulu | Complete |
| 2674 | Bidirectional iterator requirement on path::iterator is very expensive | Oulu | Complete |
| 2683 | filesystem::copy() says "no effects" | Oulu | Complete |
| 2684 | priority_queue lacking comparator typedef | Oulu | Complete |
| 2685 | shared_ptr deleters must not throw on move construction | Oulu | Complete |
| 2687 | {inclusive,exclusive}_scan misspecified | Oulu | |
| 2688 | clamp misses preconditions and has extraneous condition on result | Oulu | Complete |
| 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 |
| 2704 | recursive_directory_iterator's members should require '*this is dereferenceable' | Oulu | Complete |
| 2706 | Error reporting for recursive_directory_iterator::pop() is under-specified | Oulu | Complete |
| 2707 | path construction and assignment should have "string_type&&" overloads | Oulu | Complete |
| 2709 | offsetof is unnecessarily imprecise | Oulu | |
| 2710 | "Effects: Equivalent to ..." doesn't count "Synchronization:" as determined semantics | Oulu | Complete |
| 2711 | path is convertible from approximately everything under the sun | Oulu | Complete |
| 2716 | Specification of shuffle and sample disallows lvalue URNGs | Oulu | Complete |
| 2718 | Parallelism bug in [algorithms.parallel.exec] p2 | Oulu | |
| 2719 | permissions function should not be noexcept due to narrow contract | Oulu | Complete |
| 2720 | permissions function incorrectly specified for symlinks | Oulu | Complete |
| 2721 | remove_all has incorrect post conditions | Oulu | Complete |
| 2723 | Do directory_iterator and recursive_directory_iterator become the end iterator upon error? | Oulu | Complete |
| 2724 | The protected virtual member functions of memory_resource should be private | Oulu | |
| 2725 | filesystem::exists(const path&, error_code&) error reporting | Oulu | Complete |
| 2726 | [recursive_]directory_iterator::increment(error_code&) is underspecified | Oulu | Complete |
| 2727 | Parallel algorithms with constexpr specifier | Oulu | |
| 2728 | status(p).permissions() and symlink_status(p).permissions() are not specified | Oulu | Complete |
| 2181 | Exceptions from seed sequence operations | Oulu | Complete |
| 2309 | mutex::lock() should not throw device_or_resource_busy | Oulu | Complete |
| 2310 | Public exposition only member in std::array | Oulu | Complete |
| 2312 | tuple's constructor constraints need to be phrased more precisely | Oulu | Complete |
| 2328 | Rvalue stream extraction should use perfect forwarding | Oulu | Complete |
| 2393 | std::function's Callable definition is broken | Oulu | Complete |
| 2422 | std::numeric_limits<T>::is_modulo description: "most machines" errata | Oulu | Complete |
| 2426 | Issue about compare_exchange | Oulu | |
| 2436 | Comparators for associative containers should always be CopyConstructible | Oulu | Complete |
| 2441 | Exact-width atomic typedefs should be provided | Oulu | Complete |
| 2451 | [fund.ts.v2] optional 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 | Complete |
| 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 | Complete |
| 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> does not work for arrays | Oulu | |
| 2596 | vector::data() should use addressof | Oulu | Complete |
| 2667 | path::root_directory() description is confusing | Oulu | Complete |
| 2669 | recursive_directory_iterator effects refers to non-existent functions | Oulu | Complete |
| 2670 | system_complete refers to undefined variable 'base' | Oulu | Complete |
| 2671 | Errors in Copy | Oulu | Complete |
| 2673 | status() effects cannot be implemented as specified | Oulu | Complete |
| 2674 | Bidirectional iterator requirement on path::iterator is very expensive | Oulu | Complete |
| 2683 | filesystem::copy() says "no effects" | Oulu | Complete |
| 2684 | priority_queue lacking comparator typedef | Oulu | Complete |
| 2685 | shared_ptr deleters must not throw on move construction | Oulu | Complete |
| 2687 | {inclusive,exclusive}_scan misspecified | Oulu | |
| 2688 | clamp misses preconditions and has extraneous condition on result | Oulu | Complete |
| 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 |
| 2704 | recursive_directory_iterator's members should require '*this is dereferenceable' | Oulu | Complete |
| 2706 | Error reporting for recursive_directory_iterator::pop() is under-specified | Oulu | Complete |
| 2707 | path construction and assignment should have "string_type&&" overloads | Oulu | Complete |
| 2709 | offsetof is unnecessarily imprecise | Oulu | |
| 2710 | "Effects: Equivalent to ..." doesn't count "Synchronization:" as determined semantics | Oulu | Complete |
| 2711 | path is convertible from approximately everything under the sun | Oulu | Complete |
| 2716 | Specification of shuffle and sample disallows lvalue URNGs | Oulu | Complete |
| 2718 | Parallelism bug in [algorithms.parallel.exec] p2 | Oulu | |
| 2719 | permissions function should not be noexcept due to narrow contract | Oulu | Complete |
| 2720 | permissions function incorrectly specified for symlinks | Oulu | Complete |
| 2721 | remove_all has incorrect post conditions | Oulu | Complete |
| 2723 | Do directory_iterator and recursive_directory_iterator become the end iterator upon error? | Oulu | Complete |
| 2724 | The protected virtual member functions of memory_resource should be private | Oulu | |
| 2725 | filesystem::exists(const path&, error_code&) error reporting | Oulu | Complete |
| 2726 | [recursive_]directory_iterator::increment(error_code&) is underspecified | Oulu | Complete |
| 2727 | Parallel algorithms with constexpr specifier | Oulu | |
| 2728 | status(p).permissions() and symlink_status(p).permissions() are not specified | Oulu | Complete |
| 2062 | Effect contradictions w/o no-throw guarantee of std::function swaps | Issaquah | Complete |
| 2166 | Heap property underspecified? | Issaquah | |
| 2221 | No formatted output operator for nullptr | Issaquah | |
| 2223 | shrink_to_fit effect on iterator validity | Issaquah | Complete |
| 2261 | Are containers required to use their 'pointer' type internally? | Issaquah | |
| 2394 | locale::name specification unclear - what is implementation-defined? | Issaquah | Complete |
| 2460 | LWG issue 2408 and value categories | Issaquah | Complete |
| 2468 | Self-move-assignment of library types | Issaquah | |
| 2475 | Allow overwriting of std::basic_string terminator with charT() to allow cleaner interoperation with legacy APIs | Issaquah | Complete |
| 2503 | multiline option should be added to syntax_option_type | Issaquah | |
| 2510 | Tag types should not be DefaultConstructible | Issaquah | |
| 2514 | Type traits must not be final | Issaquah | Complete |
| 2518 | [fund.ts.v2] Non-member swap for propagate_const should call member swap | Issaquah | |
| 2519 | Iterator operator-= has gratuitous undefined behaviour | Issaquah | Complete |
| 2521 | [fund.ts.v2] weak_ptr's converting move constructor should be modified as well for array support | Issaquah | |
| 2525 | [fund.ts.v2] get_memory_resource should be const and noexcept | Issaquah | |
| 2527 | [fund.ts.v2] ALLOCATOR_OF for function::operator= has incorrect default | Issaquah | |
| 2531 | future::get should explicitly state that the shared state is released | Issaquah | |
| 2534 | Constrain rvalue stream operators | Issaquah | |
| 2536 | What should <complex.h> do? | Issaquah | Complete |
| 2540 | unordered_multimap::insert hint iterator | Issaquah | Complete |
| 2543 | LWG 2148 (hash support for enum types) seems under-specified | Issaquah | Complete |
| 2544 | istreambuf_iterator(basic_streambuf | Issaquah | Complete |
| 2556 | Wide contract for future::share() | Issaquah | Complete |
| 2562 | Consistent total ordering of pointers by comparison functors | Issaquah | |
| 2567 | Specification of logical operator traits uses BaseCharacteristic, which is defined only for UnaryTypeTraits and BinaryTypeTraits | Issaquah | Complete |
| 2568 | [fund.ts.v2] Specification of logical operator traits uses BaseCharacteristic, which is defined only for UnaryTypeTraits and BinaryTypeTraits | Issaquah | |
| 2569 | conjunction and disjunction requirements are too strict | Issaquah | Complete |
| 2570 | [fund.ts.v2] conjunction and disjunction requirements are too strict | Issaquah | |
| 2578 | Iterator requirements should reference iterator traits | Issaquah | Complete |
| 2584 | Issaquah | ||
| 2588 | [fund.ts.v2] "Convertible to bool" requirement in conjunction and disjunction | Issaquah | |
| 2589 | match_results can't satisfy the requirements of a container | Issaquah | Complete |
| 2591 | std::function's member template target() should not lead to undefined behaviour | Issaquah | Complete |
| 2598 | addressof works on temporaries | Issaquah | Complete |
| 2664 | operator/ (and other append) semantics not useful if argument has root | Issaquah | Complete |
| 2665 | remove_filename() post condition is incorrect | Issaquah | Complete |
| 2672 | Should is_empty use error_code in its specification? | Issaquah | Complete |
| 2678 | std::filesystem enum classes overspecified | Issaquah | Complete |
| 2679 | Inconsistent Use of Effects and Equivalent To | Issaquah | Complete |
| 2680 | Add "Equivalent to" to filesystem | Issaquah | Complete |
| 2681 | filesystem::copy() cannot copy symlinks | Issaquah | Complete |
| 2682 | filesystem::copy() won't create a symlink to a directory | Issaquah | Complete |
| 2686 | Why is std::hash specialized for error_code, but not error_condition? | Issaquah | Complete |
| 2694 | Application of LWG 436 accidentally deleted definition of "facet" | Issaquah | Complete |
| 2696 | Interaction between make_shared and enable_shared_from_this is underspecified | Issaquah | |
| 2699 | Missing restriction in [numeric.requirements] | Issaquah | Complete |
| 2712 | copy_file(from, to, ...) has a number of unspecified error conditions | Issaquah | Complete |
| 2722 | equivalent incorrectly specifies throws clause | Issaquah | Complete |
| 2729 | Missing SFINAE on std::pair::operator= | Issaquah | |
| 2732 | Questionable specification of path::operator/= and path::append | Issaquah | Complete |
| 2733 | [fund.ts.v2] gcd / lcm and bool | Issaquah | Complete |
| 2735 | std::abs(short), std::abs(signed char) and others should return int instead of double in order to be compatible with C++98 and C | Issaquah | |
| 2736 | nullopt_t insufficiently constrained | Issaquah | Complete |
| 2738 | is_constructible with void types | Issaquah | Complete |
| 2739 | Issue with time_point non-member subtraction with an unsigned duration | Issaquah | Complete |
| 2740 | constexpr optional | Issaquah | Complete |
| 2742 | Inconsistent string interface taking string_view | Issaquah | Complete |
| 2744 | any's in_place constructors | Issaquah | Complete |
| 2745 | [fund.ts.v2] Implementability of LWG 2451 | Issaquah | |
| 2747 | Possibly redundant std::move in [alg.foreach] | Issaquah | Complete |
| 2748 | swappable traits for optionals | Issaquah | Complete |
| 2749 | swappable traits for variants | Issaquah | Complete |
| 2750 | [fund.ts.v2] LWG 2451 conversion constructor constraint | Issaquah | |
| 2752 | "Throws:" clauses of async and packaged_task are unimplementable | Issaquah | |
| 2755 | [string.view.io] uses non-existent basic_string_view::to_string function | Issaquah | Complete |
| 2756 | C++ WP optional | Issaquah | Complete |
| 2758 | std::string{}.assign("ABCDE", 0, 1) is ambiguous | Issaquah | Complete |
| 2759 | gcd / lcm and bool for the WP | Issaquah | Complete |
| 2760 | non-const basic_string::data should not invalidate iterators | Issaquah | Complete |
| 2765 | Did LWG 1123 go too far? | Issaquah | Complete |
| 2767 | not_fn call_wrapper can form invalid types | Issaquah | Complete |
| 2769 | Redundant const in the return type of any_cast(const any&) | Issaquah | Complete |
| 2771 | Broken Effects of some basic_string::compare functions in terms of basic_string_view | Issaquah | Complete |
| 2773 | Making std::ignore constexpr | Issaquah | Complete |
| 2777 | basic_string_view::copy should use char_traits::copy | Issaquah | Complete |
| 2778 | basic_string_view is missing constexpr | Issaquah | Complete |
| 2062 | Effect contradictions w/o no-throw guarantee of std::function swaps | Issaquah | Complete |
| 2166 | Heap property underspecified? | Issaquah | |
| 2221 | No formatted output operator for nullptr | Issaquah | |
| 2223 | shrink_to_fit effect on iterator validity | Issaquah | Complete |
| 2261 | Are containers required to use their 'pointer' type internally? | Issaquah | |
| 2394 | locale::name specification unclear - what is implementation-defined? | Issaquah | Complete |
| 2460 | LWG issue 2408 and value categories | Issaquah | Complete |
| 2468 | Self-move-assignment of library types | Issaquah | |
| 2475 | Allow overwriting of std::basic_string terminator with charT() to allow cleaner interoperation with legacy APIs | Issaquah | Complete |
| 2503 | multiline option should be added to syntax_option_type | Issaquah | |
| 2510 | Tag types should not be DefaultConstructible | Issaquah | |
| 2514 | Type traits must not be final | Issaquah | Complete |
| 2518 | [fund.ts.v2] Non-member swap for propagate_const should call member swap | Issaquah | |
| 2519 | Iterator operator-= has gratuitous undefined behaviour | Issaquah | Complete |
| 2521 | [fund.ts.v2] weak_ptr's converting move constructor should be modified as well for array support | Issaquah | |
| 2525 | [fund.ts.v2] get_memory_resource should be const and noexcept | Issaquah | |
| 2527 | [fund.ts.v2] ALLOCATOR_OF for function::operator= has incorrect default | Issaquah | |
| 2531 | future::get should explicitly state that the shared state is released | Issaquah | |
| 2534 | Constrain rvalue stream operators | Issaquah | |
| 2536 | What should <complex.h> do? | Issaquah | Complete |
| 2540 | unordered_multimap::insert hint iterator | Issaquah | Complete |
| 2543 | LWG 2148 (hash support for enum types) seems under-specified | Issaquah | Complete |
| 2544 | istreambuf_iterator(basic_streambuf | Issaquah | Complete |
| 2556 | Wide contract for future::share() | Issaquah | Complete |
| 2562 | Consistent total ordering of pointers by comparison functors | Issaquah | |
| 2567 | Specification of logical operator traits uses BaseCharacteristic, which is defined only for UnaryTypeTraits and BinaryTypeTraits | Issaquah | Complete |
| 2568 | [fund.ts.v2] Specification of logical operator traits uses BaseCharacteristic, which is defined only for UnaryTypeTraits and BinaryTypeTraits | Issaquah | |
| 2569 | conjunction and disjunction requirements are too strict | Issaquah | Complete |
| 2570 | [fund.ts.v2] conjunction and disjunction requirements are too strict | Issaquah | |
| 2578 | Iterator requirements should reference iterator traits | Issaquah | Complete |
| 2584 | Issaquah | ||
| 2588 | [fund.ts.v2] "Convertible to bool" requirement in conjunction and disjunction | Issaquah | |
| 2589 | match_results can't satisfy the requirements of a container | Issaquah | Complete |
| 2591 | std::function's member template target() should not lead to undefined behaviour | Issaquah | Complete |
| 2598 | addressof works on temporaries | Issaquah | Complete |
| 2664 | operator/ (and other append) semantics not useful if argument has root | Issaquah | Complete |
| 2665 | remove_filename() post condition is incorrect | Issaquah | Complete |
| 2672 | Should is_empty use error_code in its specification? | Issaquah | Complete |
| 2678 | std::filesystem enum classes overspecified | Issaquah | Complete |
| 2679 | Inconsistent Use of Effects and Equivalent To | Issaquah | Complete |
| 2680 | Add "Equivalent to" to filesystem | Issaquah | Complete |
| 2681 | filesystem::copy() cannot copy symlinks | Issaquah | Complete |
| 2682 | filesystem::copy() won't create a symlink to a directory | Issaquah | Complete |
| 2686 | Why is std::hash specialized for error_code, but not error_condition? | Issaquah | Complete |
| 2694 | Application of LWG 436 accidentally deleted definition of "facet" | Issaquah | Complete |
| 2696 | Interaction between make_shared and enable_shared_from_this is underspecified | Issaquah | |
| 2699 | Missing restriction in [numeric.requirements] | Issaquah | Complete |
| 2712 | copy_file(from, to, ...) has a number of unspecified error conditions | Issaquah | Complete |
| 2722 | equivalent incorrectly specifies throws clause | Issaquah | Complete |
| 2729 | Missing SFINAE on std::pair::operator= | Issaquah | |
| 2732 | Questionable specification of path::operator/= and path::append | Issaquah | Complete |
| 2733 | [fund.ts.v2] gcd / lcm and bool | Issaquah | Complete |
| 2735 | std::abs(short), std::abs(signed char) and others should return int instead of double in order to be compatible with C++98 and C | Issaquah | |
| 2736 | nullopt_t insufficiently constrained | Issaquah | Complete |
| 2738 | is_constructible with void types | Issaquah | Complete |
| 2739 | Issue with time_point non-member subtraction with an unsigned duration | Issaquah | Complete |
| 2740 | constexpr optional | Issaquah | Complete |
| 2742 | Inconsistent string interface taking string_view | Issaquah | Complete |
| 2744 | any's in_place constructors | Issaquah | Complete |
| 2745 | [fund.ts.v2] Implementability of LWG 2451 | Issaquah | |
| 2747 | Possibly redundant std::move in [alg.foreach] | Issaquah | Complete |
| 2748 | swappable traits for optionals | Issaquah | Complete |
| 2749 | swappable traits for variants | Issaquah | Complete |
| 2750 | [fund.ts.v2] LWG 2451 conversion constructor constraint | Issaquah | |
| 2752 | "Throws:" clauses of async and packaged_task are unimplementable | Issaquah | |
| 2755 | [string.view.io] uses non-existent basic_string_view::to_string function | Issaquah | Complete |
| 2756 | C++ WP optional | Issaquah | Complete |
| 2758 | std::string{}.assign("ABCDE", 0, 1) is ambiguous | Issaquah | Complete |
| 2759 | gcd / lcm and bool for the WP | Issaquah | Complete |
| 2760 | non-const basic_string::data should not invalidate iterators | Issaquah | Complete |
| 2765 | Did LWG 1123 go too far? | Issaquah | Complete |
| 2767 | not_fn call_wrapper can form invalid types | Issaquah | Complete |
| 2769 | Redundant const in the return type of any_cast(const any&) | Issaquah | Complete |
| 2771 | Broken Effects of some basic_string::compare functions in terms of basic_string_view | Issaquah | Complete |
| 2773 | Making std::ignore constexpr | Issaquah | Complete |
| 2777 | basic_string_view::copy should use char_traits::copy | Issaquah | Complete |
| 2778 | basic_string_view is missing constexpr | Issaquah | Complete |
| 2260 | Missing requirement for Allocator::pointer | Kona | |
| 2676 | Provide filesystem::path overloads for File-based streams | Kona | |
| 2768 | any_cast and move semantics | Kona | Complete |
| 2769 | Redundant const in the return type of any_cast(const any&) | Kona | Complete |
| 2781 | Contradictory requirements for std::function and std::reference_wrapper | Kona | Complete |
| 2782 | scoped_allocator_adaptor constructors must be constrained | Kona | Complete |
| 2784 | Resolution to LWG 2484 is missing "otherwise, no effects" and is hard to parse | Kona | Complete |
| 2785 | quoted should work with basic_string_view | Kona | Complete |
| 2786 | Annex C should mention shared_ptr changes for array support | Kona | Complete |
| 2787 | §[file_status.cons] doesn't match class definition | Kona | Complete |
| 2788 | basic_string range mutators unintentionally require a default constructible allocator | Kona | Complete |
| 2789 | Equivalence of contained objects | Kona | Complete |
| 2790 | Missing specification of istreambuf_iterator::operator-> | Kona | Complete |
| 2794 | Missing requirements for allocator pointers | Kona | |
| 2795 | §[global.functions] provides incorrect example of ADL use | Kona | Complete |
| 2796 | tuple should be a literal type | Kona | Complete |
| 2801 | Default-constructibility of unique_ptr | Kona | Complete |
| 2802 | shared_ptr constructor requirements for a deleter | Kona | |
| 2804 | Unconditional constexpr default constructor for istream_iterator | Kona | Complete |
| 2806 | Base class of bad_optional_access | Kona | Complete |
| 2807 | std::invoke should use std::is_nothrow_callable | Kona | |
| 2812 | Range access is available with <string_view> | Kona | Complete |
| 2824 | list::sort should say that the order of elements is unspecified if an exception is thrown | Kona | |
| 2826 | string_view iterators use old wording | Kona | Complete |
| 2834 | Resolution LWG 2223 is missing wording about end iterators | Kona | Complete |
| 2835 | LWG 2536 seems to misspecify <tgmath.h> | Kona | |
| 2837 | gcd and lcm should support a wider range of input values | Kona | Complete |
| 2838 | is_literal_type specification needs a little cleanup | Kona | Complete |
| 2842 | in_place_t check for optional::optional(U&&) should decay U | Kona | Complete |
| 2850 | std::function move constructor does unnecessary work | Kona | Complete |
| 2853 | Possible inconsistency in specification of erase in [vector.modifiers] | Kona | Complete |
| 2855 | std::throw_with_nested("string_literal") | Kona | Complete |
| 2857 | {variant,optional,any}::emplace should return the constructed value | Kona | Complete |
| 2861 | basic_string should require that charT match traits::char_type | Kona | Complete |
| 2866 | Incorrect derived classes constraints | Kona | |
| 2868 | Missing specification of bad_any_cast::what() | Kona | Complete |
| 2872 | Add definition for direct-non-list-initialization | Kona | Complete |
| 2873 | Add noexcept to several shared_ptr related functions | Kona | Complete |
| 2874 | Constructor shared_ptr::shared_ptr(Y*) should be constrained | Kona | |
| 2875 | shared_ptr::shared_ptr(Y*, D, […]) constructors should be constrained | Kona | |
| 2876 | shared_ptr::shared_ptr(const weak_ptr<Y>&) constructor should be constrained | Kona | |
| 2878 | Missing DefaultConstructible requirement for istream_iterator default constructor | Kona | |
| 2890 | The definition of 'object state' applies only to class types | Kona | Complete |
| 2900 | The copy and move constructors of optional are not constexpr | Kona | Complete |
| 2903 | The form of initialization for the emplace-constructors is not specified | Kona | |
| 2904 | Make variant move-assignment more exception safe | Kona | Complete |
| 2905 | is_constructible_v<unique_ptr<P, D>, P, D const &> should be false when D is not copy constructible | Kona | Complete |
| 2908 | The less-than operator for shared pointers could do more | Kona | |
| 2911 | An is_aggregate type trait is needed | Kona | Complete |
| 2921 | packaged_task and type-erased allocators | Kona | |
| 2934 | optional<const T> doesn't compare with T | Kona | Complete |
| 2260 | Missing requirement for Allocator::pointer | Kona | |
| 2676 | Provide filesystem::path overloads for File-based streams | Kona | |
| 2768 | any_cast and move semantics | Kona | Complete |
| 2769 | Redundant const in the return type of any_cast(const any&) | Kona | Complete |
| 2781 | Contradictory requirements for std::function and std::reference_wrapper | Kona | Complete |
| 2782 | scoped_allocator_adaptor constructors must be constrained | Kona | Complete |
| 2784 | Resolution to LWG 2484 is missing "otherwise, no effects" and is hard to parse | Kona | Complete |
| 2785 | quoted should work with basic_string_view | Kona | Complete |
| 2786 | Annex C should mention shared_ptr changes for array support | Kona | Complete |
| 2787 | §[file_status.cons] doesn't match class definition | Kona | Complete |
| 2788 | basic_string range mutators unintentionally require a default constructible allocator | Kona | Complete |
| 2789 | Equivalence of contained objects | Kona | Complete |
| 2790 | Missing specification of istreambuf_iterator::operator-> | Kona | Complete |
| 2794 | Missing requirements for allocator pointers | Kona | |
| 2795 | §[global.functions] provides incorrect example of ADL use | Kona | Complete |
| 2796 | tuple should be a literal type | Kona | Complete |
| 2801 | Default-constructibility of unique_ptr | Kona | Complete |
| 2802 | shared_ptr constructor requirements for a deleter | Kona | |
| 2804 | Unconditional constexpr default constructor for istream_iterator | Kona | Complete |
| 2806 | Base class of bad_optional_access | Kona | Complete |
| 2807 | std::invoke should use std::is_nothrow_callable | Kona | |
| 2812 | Range access is available with <string_view> | Kona | Complete |
| 2824 | list::sort should say that the order of elements is unspecified if an exception is thrown | Kona | |
| 2826 | string_view iterators use old wording | Kona | Complete |
| 2834 | Resolution LWG 2223 is missing wording about end iterators | Kona | Complete |
| 2835 | LWG 2536 seems to misspecify <tgmath.h> | Kona | |
| 2837 | gcd and lcm should support a wider range of input values | Kona | Complete |
| 2838 | is_literal_type specification needs a little cleanup | Kona | Complete |
| 2842 | in_place_t check for optional::optional(U&&) should decay U | Kona | Complete |
| 2850 | std::function move constructor does unnecessary work | Kona | Complete |
| 2853 | Possible inconsistency in specification of erase in [vector.modifiers] | Kona | Complete |
| 2855 | std::throw_with_nested("string_literal") | Kona | Complete |
| 2857 | {variant,optional,any}::emplace should return the constructed value | Kona | Complete |
| 2861 | basic_string should require that charT match traits::char_type | Kona | Complete |
| 2866 | Incorrect derived classes constraints | Kona | |
| 2868 | Missing specification of bad_any_cast::what() | Kona | Complete |
| 2872 | Add definition for direct-non-list-initialization | Kona | Complete |
| 2873 | Add noexcept to several shared_ptr related functions | Kona | Complete |
| 2874 | Constructor shared_ptr::shared_ptr(Y*) should be constrained | Kona | |
| 2875 | shared_ptr::shared_ptr(Y*, D, […]) constructors should be constrained | Kona | |
| 2876 | shared_ptr::shared_ptr(const weak_ptr<Y>&) constructor should be constrained | Kona | |
| 2878 | Missing DefaultConstructible requirement for istream_iterator default constructor | Kona | |
| 2890 | The definition of 'object state' applies only to class types | Kona | Complete |
| 2900 | The copy and move constructors of optional are not constexpr | Kona | Complete |
| 2903 | The form of initialization for the emplace-constructors is not specified | Kona | |
| 2904 | Make variant move-assignment more exception safe | Kona | Complete |
| 2905 | is_constructible_v<unique_ptr<P, D>, P, D const &> should be false when D is not copy constructible | Kona | Complete |
| 2908 | The less-than operator for shared pointers could do more | Kona | |
| 2911 | An is_aggregate type trait is needed | Kona | Complete |
| 2921 | packaged_task and type-erased allocators | Kona | |
| 2934 | optional<const T> doesn't compare with T | Kona | Complete |
| 2901 | Variants cannot properly support allocators | Toronto | Complete |
| 2955 | to_chars / from_chars depend on std::string | Toronto | Resolved by P0682R1 |
| 2956 | filesystem::canonical() still defined in terms of absolute(p, base) | Toronto | Complete |
| 2901 | Variants cannot properly support allocators | Toronto | Complete |
| 2955 | to_chars / from_chars depend on std::string | Toronto | Resolved by P0682R1 |
| 2956 | filesystem::canonical() still defined in terms of absolute(p, base) | Toronto | Complete |
In July 2017, the C++ standard committee created a draft for the next version of the C++ standard, known here as "C++2a" (probably to be C++20).
-This page shows the status of libc++; the status of clang's support of the language features is here.
+This page shows the status of libc++; the status of clang's support of the language features is here.
Reminder: Features in unreleased drafts of the standard are subject to change.
@@ -52,7 +52,7 @@| Paper # | Group | Paper Name | Meeting | Status | First released version |
|---|---|---|---|---|---|
| P0463R1 | LWG | Endian just Endian | Toronto | ||
| P0674R1 | LWG | Extending make_shared to Support Arrays | Toronto |
| Issue # | Issue Name | Meeting | Status |
|---|---|---|---|
| 2070 | allocate_shared should use allocator_traits<A>::construct | Toronto | Resolved by P0674R1 |
| 2444 | Inconsistent complexity for std::sort_heap | Toronto | |
| 2593 | Moved-from state of Allocators | Toronto | |
| 2597 | std::log misspecified for complex numbers | Toronto | |
| 2783 | stack::emplace() and queue::emplace() should return decltype(auto) | Toronto | |
| 2932 | Constraints on parallel algorithm implementations are underspecified | Toronto | |
| 2937 | Is equivalent("existing_thing", "not_existing_thing") an error | Toronto | Complete |
| 2940 | result_of specification also needs a little cleanup | Toronto | |
| 2942 | LWG 2873's resolution missed weak_ptr::owner_before | Toronto | Complete |
| 2954 | Specialization of the convenience variable templates should be prohibited | Toronto | Complete |
| 2961 | Bad postcondition for set_default_resource | Toronto | |
| 2966 | Incomplete resolution of US 74 | Toronto | Nothing to do |
| 2974 | Diagnose out of bounds tuple_element/variant_alternative | Toronto | Complete |
| 2070 | allocate_shared should use allocator_traits<A>::construct | Toronto | Resolved by P0674R1 |
| 2444 | Inconsistent complexity for std::sort_heap | Toronto | |
| 2593 | Moved-from state of Allocators | Toronto | |
| 2597 | std::log misspecified for complex numbers | Toronto | |
| 2783 | stack::emplace() and queue::emplace() should return decltype(auto) | Toronto | |
| 2932 | Constraints on parallel algorithm implementations are underspecified | Toronto | |
| 2937 | Is equivalent("existing_thing", "not_existing_thing") an error | Toronto | Complete |
| 2940 | result_of specification also needs a little cleanup | Toronto | |
| 2942 | LWG 2873's resolution missed weak_ptr::owner_before | Toronto | Complete |
| 2954 | Specialization of the convenience variable templates should be prohibited | Toronto | Complete |
| 2961 | Bad postcondition for set_default_resource | Toronto | |
| 2966 | Incomplete resolution of US 74 | Toronto | Nothing to do |
| 2974 | Diagnose out of bounds tuple_element/variant_alternative | Toronto | Complete |
All of the code in libc++ is dual licensed + href="https://llvm.org/docs/DeveloperPolicy.html#license">dual licensed under the MIT license and the UIUC License (a BSD-like license).
@@ -49,7 +49,7 @@Looking for documentation on how to use, build and test libc++? If so checkout the new libc++ documentation.
-
+
Click here for the new libc++ documentation. First please review our
- Developer's Policy.
+ Developer's Policy.
The documentation for building and using libc++ can be found below.
Send discussions to the - clang mailing list.
+ clang mailing list.If you think you've found a bug in libc++, please report it using - the LLVM Bugzilla. If you're not sure, you - can post a message to the cfe-dev + the LLVM Bugzilla. If you're not sure, you + can post a message to the cfe-dev mailing list or on IRC. Please include "libc++" in your subject.
If you want to contribute a patch to libc++, the best place for that is - Phabricator. Please + Phabricator. Please include [libc++] in the subject and add cfe-commits as a subscriber.
@@ -221,7 +221,7 @@In November 2014, the C++ standard committee approved the draft for the next version of the C++ standard, known as "C++1z" (probably to be C++17)
In addition, there are several "Technical Specifications", that consist of new features that are proposed, but not yet accepted for C++1z.
-This page shows the status of libc++; the status of clang's support of the language features is here.
+This page shows the status of libc++; the status of clang's support of the language features is here.
| Paper Number | Paper Title | TS |
|---|---|---|
| 4023 | C++ Extensions for Library Fundamentals | Library Fundamentals 1 |
| 3940 | Technical Specification - File System | File System |
| 4023 | C++ Extensions for Library Fundamentals | Library Fundamentals 1 |
| 3940 | Technical Specification - File System | File System |
| 4273 | Uniform Container Erasure. | Library Fundamentals 2 |
| 4061 | Greatest Common Divisor and Least Common Multiple. | Library Fundamentals 2 |
| 4257 | Delimited iterators. | Library Fundamentals 2 |
| 4282 | The World's Dumbest Smart Pointer. | Library Fundamentals 2 |
| 4273 | Uniform Container Erasure. | Library Fundamentals 2 |
| 4061 | Greatest Common Divisor and Least Common Multiple. | Library Fundamentals 2 |
| 4257 | Delimited iterators. | Library Fundamentals 2 |
| 4282 | The World's Dumbest Smart Pointer. | Library Fundamentals 2 |
| Feature Name | Status | First released version |
|---|
| Paper # | Group | Paper Name | Meeting | Status | First released version |
|---|
| Issue # | Issue Name | Meeting | Status |
|---|---|---|---|
| 2444 | Inconsistent complexity for std::sort_heap | Toronto | |
| 2593 | Moved-from state of Allocators | Toronto | |
| 2597 | std::log misspecified for complex numbers | Toronto | |
| 2783 | stack::emplace() and queue::emplace() should return decltype(auto) | Toronto | |
| 2932 | Constraints on parallel algorithm implementations are underspecified | Toronto | |
| 2937 | Is equivalent("existing_thing", "not_existing_thing") an error? | Toronto | Complete |
| 2940 | result_of specification also needs a little cleanup | Toronto | |
| 2942 | LWG 2873's resolution missed weak_ptr::owner_before | Toronto | |
| 2954 | Specialization of the convenience variable templates should be prohibited | Toronto | |
| 2961 | Bad postcondition for set_default_resource | Toronto | |
| 2966 | Incomplete resolution of US 74 | Toronto | |
| 2974 | Diagnose out of bounds tuple_element/variant_alternative | Toronto | |
| 2444 | Inconsistent complexity for std::sort_heap | Toronto | |
| 2593 | Moved-from state of Allocators | Toronto | |
| 2597 | std::log misspecified for complex numbers | Toronto | |
| 2783 | stack::emplace() and queue::emplace() should return decltype(auto) | Toronto | |
| 2932 | Constraints on parallel algorithm implementations are underspecified | Toronto | |
| 2937 | Is equivalent("existing_thing", "not_existing_thing") an error? | Toronto | Complete |
| 2940 | result_of specification also needs a little cleanup | Toronto | |
| 2942 | LWG 2873's resolution missed weak_ptr::owner_before | Toronto | |
| 2954 | Specialization of the convenience variable templates should be prohibited | Toronto | |
| 2961 | Bad postcondition for set_default_resource | Toronto | |
| 2966 | Incomplete resolution of US 74 | Toronto | |
| 2974 | Diagnose out of bounds tuple_element/variant_alternative | Toronto | |
| 2665 | remove_filename() post condition is incorrect | Toronto | We do this already |
| 2665 | remove_filename() post condition is incorrect | Toronto | We do this already |
| 2901 | Variants cannot properly support allocators | Toronto | We do this already |
| 2956 | filesystem::canonical() still defined in terms of absolute(p, base) | Toronto | |
| 2901 | Variants cannot properly support allocators | Toronto | We do this already |
| 2956 | filesystem::canonical() still defined in terms of absolute(p, base) | Toronto |