diff --git a/libcxx/docs/Cxx1yStatus.rst b/libcxx/docs/Cxx1yStatus.rst new file mode 100644 --- /dev/null +++ b/libcxx/docs/Cxx1yStatus.rst @@ -0,0 +1,50 @@ +.. _cxx1y-status: + +================================ +libc++ C++14 Status +================================ + +.. include:: Styles.rst + +.. contents:: + :local: + + +Overview +================================ + +In April 2013, the C++ standard committee approved the draft for the next version of the C++ standard, initially known as "C++1y". + +The draft standard includes papers and issues that were voted on at the previous three meetings (Kona, Portland, and Bristol). + +In August 2014, this draft was approved by ISO as C++14. + +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: + +- CWG - Core Language Working group +- LWG - Library working group +- SG1 - Study group #1 (Concurrency working group) + + +.. _paper-status-cxx1y: + +Paper Status +==================================== + +.. csv-table:: + :file: Cxx1yStatusPaperStatus.csv + :widths: auto + + +.. _issues-status-cxx1y: + +Library Working Group Issues Status +==================================== + +.. csv-table:: + :file: Cxx1yStatusIssuesStatus.csv + :widths: auto + +Last Updated: 25-Mar-2014 diff --git a/libcxx/docs/Cxx1yStatusIssuesStatus.csv b/libcxx/docs/Cxx1yStatusIssuesStatus.csv new file mode 100644 --- /dev/null +++ b/libcxx/docs/Cxx1yStatusIssuesStatus.csv @@ -0,0 +1,157 @@ +"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|" +"","","","" +"`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>::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 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|" +"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|" +"`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|" +"`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|" diff --git a/libcxx/docs/Cxx1yStatusPaperStatus.csv b/libcxx/docs/Cxx1yStatusPaperStatus.csv new file mode 100644 --- /dev/null +++ b/libcxx/docs/Cxx1yStatusPaperStatus.csv @@ -0,0 +1,32 @@ +"Paper #","Group","Paper Name","Meeting","Status","First released version" +"`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" +"","","","","","" +"`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" +"","","","","","" +"`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" diff --git a/libcxx/docs/Cxx1zStatus.rst b/libcxx/docs/Cxx1zStatus.rst new file mode 100644 --- /dev/null +++ b/libcxx/docs/Cxx1zStatus.rst @@ -0,0 +1,55 @@ +.. _cxx1z-status: + +================================ +libc++ C++17 Status +================================ + +.. include:: Styles.rst + +.. contents:: + :local: + + +Overview +================================ + +In November 2014, the C++ standard committee created a draft for the next version of the C++ standard, initially known as "C++1z". +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 `__. + +.. attention:: Features in unreleased drafts of the standard are subject to change. + +The groups that have contributed papers: + +- CWG - Core Language Working group +- LWG - Library working group +- SG1 - Study group #1 (Concurrency working group) + +.. note:: "Nothing to do" means that no library changes were needed to implement this change. + +.. _paper-status-cxx1z: + +Paper Status +==================================== + +.. csv-table:: + :file: Cxx1zStatusPaperStatus.csv + :widths: auto + +.. note:: + + .. [#note-P0433] P0433: So far, only the ````, sequence containers, container adaptors and ```` portions of P0433 have been implemented. + .. [#note-P0607] P0607: The parts of P0607 that are not done are the ```` bits. + + +.. _issues-status-cxx1z: + +Library Working Group Issues Status +==================================== + +.. csv-table:: + :file: Cxx1zStatusIssuesStatus.csv + :widths: auto + +Last Updated: 17-Nov-2020 diff --git a/libcxx/docs/Cxx1zStatusIssuesStatus.csv b/libcxx/docs/Cxx1zStatusIssuesStatus.csv new file mode 100644 --- /dev/null +++ b/libcxx/docs/Cxx1zStatusIssuesStatus.csv @@ -0,0 +1,318 @@ +"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|" +"","","","" +"`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 header","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 does not discard the return value of the target object","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","|Complete|" +"`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 ````\ 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","|Complete|" +"`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)``\ do not yield a total order for pointers","Jacksonville","|Complete|" +"`2520 `__","N4089 broke initializing ``unique_ptr``\ 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_wrapper``\ s and function pointers","Jacksonville","|Complete|" +"`2566 `__","Requirements on the first template parameter of container adaptors","Jacksonville","|Complete|" +"`2571 `__","|sect|\ [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","|Complete|" +"`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 ````\ variable templates should be prohibited","Jacksonville","|Complete|" +"`2582 `__","|sect|\ [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","|Complete|" +"`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::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","|Nothing To Do|" +"`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 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","|Complete|" +"`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","|Complete|" +"`2510 `__","Tag types should not be DefaultConstructible","Issaquah","|Complete|" +"`2514 `__","Type traits must not be final","Issaquah","|Complete|" +"`2518 `__","[fund.ts.v2] Non-member swap for propagate_const should call member swap","Issaquah","|Complete|" +"`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 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* s)``\ effects unclear when s is 0","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 `__"," ECMAScript IdentityEscape is ambiguous","Issaquah","" +"`2587 `__","""Convertible to bool"" requirement in conjunction and disjunction","Issaquah","Resolved by 2567" +"`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","|Nothing To Do|" +"`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","|Complete|" +"`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::operator->","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","|Complete|" +"`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","|Nothing To Do|" +"`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 should 'forward' T's implicit conversions","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","|Complete|" +"`2676 `__","Provide filesystem::path overloads for File-based streams","Kona","|Complete|" +"`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 `__","|sect|\ [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","|Nothing To Do|" +"`2795 `__","|sect|\ [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","|Complete|" +"`2812 `__","Range access is available with ","Kona","|Complete|" +"`2824 `__","list::sort should say that the order of elements is unspecified if an exception is thrown","Kona","|Complete|" +"`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 ","Kona","|Complete|" +"`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","|Nothing To Do|" +"`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, [|hellip|\ ]) constructors should be constrained","Kona","" +"`2876 `__","``shared_ptr::shared_ptr(const weak_ptr&)``\ constructor should be constrained","Kona","" +"`2878 `__","Missing DefaultConstructible requirement for istream_iterator default constructor","Kona","|Complete|" +"`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","|Complete|" +"`2904 `__","Make variant move-assignment more exception safe","Kona","|Complete|" +"`2905 `__","is_constructible_v, 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","|Complete|" +"`2911 `__","An is_aggregate type trait is needed","Kona","|Complete|" +"`2921 `__","packaged_task and type-erased allocators","Kona","|Complete|" +"`2934 `__","optional 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|" diff --git a/libcxx/docs/Cxx1zStatusPaperStatus.csv b/libcxx/docs/Cxx1zStatusPaperStatus.csv new file mode 100644 --- /dev/null +++ b/libcxx/docs/Cxx1zStatusPaperStatus.csv @@ -0,0 +1,113 @@ +"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``\ .","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 Stuff.","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" +"","","","","","" +"`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 ","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","|Complete|","7.0" +"`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","|Complete|","7.0" +"`p0067r3 `__","LWG","Elementary string conversions","Oulu","Now `P0067R5 `__","n/a" +"`p0083r3 `__","LWG","Splicing Maps and Sets","Oulu","|Complete|","8.0" +"`p0084r2 `__","LWG","Emplace Return Type","Oulu","|Complete|","4.0" +"`p0088r3 `__","LWG","Variant: a type-safe union for C++17","Oulu","|Complete|","4.0" +"`p0137r1 `__","CWG","Core Issue 1776: Replacement of class objects containing reference members","Oulu","|Complete|","6.0" +"`p0163r0 `__","LWG","shared_ptr::weak_type","Oulu","|Complete|","3.9" +"`p0174r2 `__","LWG","Deprecating Vestigial Library Parts in C++17","Oulu","|Partial|","" +"`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","|Complete|","7.0" +"`p0254r2 `__","LWG","Integrating std::string_view and std::string","Oulu","|Complete|","4.0" +"`p0258r2 `__","LWG","has_unique_object_representations","Oulu","|Complete|","6.0" +"`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 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","|Partial|","" +"`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","|Complete|","11.0" +"`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","|Complete|","7.0" +"`P0430R2 `__","LWG","File system library on non-POSIX-like operating systems","Kona","|Complete|","7.0" +"`P0433R2 `__","LWG","Toward a resolution of US7 and US14: Integrating template deduction for class templates into the standard library","Kona","|In Progress| [#note-P0433]_","7.0" +"`P0452R1 `__","LWG","Unifying Parallel Algorithms","Kona","","" +"`P0467R2 `__","LWG","Iterator Concerns for Parallel Algorithms","Kona","","" +"`P0492R2 `__","LWG","Proposed Resolution of C++17 National Body Comments for Filesystems","Kona","|Complete|","7.0" +"`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 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","|Complete|","" +"`P0607R0 `__","LWG","Inline Variables for the Standard Library","Kona","|In Progress| [#note-P0607]_","6.0" +"`P0618R0 `__","LWG","Deprecating ","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" diff --git a/libcxx/docs/Cxx2aStatus.rst b/libcxx/docs/Cxx2aStatus.rst new file mode 100644 --- /dev/null +++ b/libcxx/docs/Cxx2aStatus.rst @@ -0,0 +1,56 @@ +.. _cxx2a-status: + +================================ +libc++ C++2a Status +================================ + +.. include:: Styles.rst + +.. contents:: + :local: + + +Overview +================================ + +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 `__. + +.. attention:: Features in unreleased drafts of the standard are subject to change. + +The groups that have contributed papers: + +- CWG - Core Language Working group +- LWG - Library working group +- SG1 - Study group #1 (Concurrency working group) + +.. note:: "Nothing to do" means that no library changes were needed to implement this change. + +.. _paper-status-cxx2a: + +Paper Status +==================================== + +.. csv-table:: + :file: Cxx2aStatusPaperStatus.csv + :widths: auto + +.. note:: + + .. [#note-P0202] P0202: The missing bits in P0202 are in ``copy`` and ``copy_backwards`` (and the ones that call them: ``copy_n``, ``set_union``, ``set_difference``, and ``set_symmetric_difference``). This is because the first two algorithms have specializations that call ``memmove`` which is not constexpr. See `Bug 25165 `__ + .. [#note-P0600] P0600: The missing bits in P0600 are in |sect|\ [mem.res.class], |sect|\ [mem.poly.allocator.class], and |sect|\ [container.node.overview]. + + .. [#note-P0619] P0619: Only ``std::allocator`` part is implemented. + + +.. _issues-status-cxx2a: + +Library Working Group Issues Status +==================================== + +.. csv-table:: + :file: Cxx2aStatusIssuesStatus.csv + :widths: auto + +Last Updated: 24-Nov-2020 diff --git a/libcxx/docs/Cxx2aStatusIssuesStatus.csv b/libcxx/docs/Cxx2aStatusIssuesStatus.csv new file mode 100644 --- /dev/null +++ b/libcxx/docs/Cxx2aStatusIssuesStatus.csv @@ -0,0 +1,299 @@ +"Issue #","Issue Name","Meeting","Status" +"`2070 `__","``allocate_shared``\ should use ``allocator_traits::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","|Complete|" +"`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|" +"","","","" +"`2779 `__","[networking.ts] Relax requirements on buffer sequence iterators","Albuquerque","" +"`2870 `__","Default value of parameter theta of polar should be dependent","Albuquerque","|Complete|" +"`2935 `__","What should create_directories do when p already exists but is not a directory?","Albuquerque","" +"`2941 `__","[thread.req.timing] wording should apply to both member and namespace-level functions","Albuquerque","|Nothing To Do|" +"`2944 `__","LWG 2905 accidentally removed requirement that construction of the deleter doesn't throw an exception","Albuquerque","|Nothing To Do|" +"`2945 `__","Order of template parameters in optional comparisons","Albuquerque","|Complete|" +"`2948 `__","unique_ptr does not define operator<< for stream output","Albuquerque","|Complete|" +"`2950 `__","std::byte operations are misspecified","Albuquerque","|Complete|" +"`2952 `__","iterator_traits should work for pointers to cv T","Albuquerque","|Complete|" +"`2953 `__","LWG 2853 should apply to deque::erase too","Albuquerque","|Complete|" +"`2958 `__","Moves improperly defined as deleted","Albuquerque","*We already do this*" +"`2964 `__","Apparently redundant requirement for dynamic_pointer_cast","Albuquerque","" +"`2965 `__","Non-existing path::native_string() in filesystem_error::what() specification","Albuquerque","|Nothing To Do|" +"`2972 `__","What is ``is_trivially_destructible_v``\ ?","Albuquerque","|Complete|" +"`2976 `__","Dangling uses_allocator specialization for packaged_task","Albuquerque","|Complete|" +"`2977 `__","unordered_meow::merge() has incorrect Throws: clause","Albuquerque","|Nothing To Do|" +"`2978 `__","Hash support for pmr::string and friends","Albuquerque","" +"`2979 `__","aligned_union should require complete object types","Albuquerque","|Complete|" +"`2980 `__","Cannot compare_exchange empty pointers","Albuquerque","" +"`2981 `__","Remove redundant deduction guides from standard library","Albuquerque","" +"`2982 `__","Making size_type consistent in associative container deduction guides","Albuquerque","" +"`2988 `__","Clause 32 cleanup missed one typename","Albuquerque","" +"`2993 `__","reference_wrapper conversion from T&&","Albuquerque","" +"`2998 `__","Requirements on function objects passed to {``forward_``,}list-specific algorithms","Albuquerque","|Nothing To Do|" +"`3001 `__","weak_ptr::element_type needs remove_extent_t","Albuquerque","" +"`3024 `__","variant's copies must be deleted instead of disabled via SFINAE","Albuquerque","|Complete|" +"","","","" +"`2164 `__","What are the semantics of ``vector.emplace(vector.begin(), vector.back())``\ ?","Jacksonville","|Complete|" +"`2243 `__","``istream::putback``\ problem","Jacksonville","|Complete|" +"`2816 `__","``resize_file``\ has impossible postcondition","Jacksonville","|Nothing To Do|" +"`2843 `__","Unclear behavior of ``std::pmr::memory_resource::do_allocate()``\ ","Jacksonville","|Complete|" +"`2849 `__","Why does ``!is_regular_file(from)``\ cause ``copy_file``\ to report a ""file already exists"" error?","Jacksonville","|Nothing To Do|" +"`2851 `__","``std::filesystem``\ enum classes are now underspecified","Jacksonville","|Nothing To Do|" +"`2946 `__","LWG 2758's resolution missed further corrections","Jacksonville","|Complete|" +"`2969 `__","``polymorphic_allocator::construct()``\ shouldn't pass ``resource()``\ ","Jacksonville","|Complete|" +"`2975 `__","Missing case for ``pair``\ construction in scoped and polymorphic allocators","Jacksonville","" +"`2989 `__","``path``\ 's stream insertion operator lets you insert everything under the sun","Jacksonville","|Complete|" +"`3000 `__","``monotonic_memory_resource::do_is_equal``\ uses ``dynamic_cast``\ unnecessarily","Jacksonville","" +"`3002 `__","[networking.ts] ``basic_socket_acceptor::is_open()``\ isn't ``noexcept``\ ","Jacksonville","" +"`3004 `__","|sect|\ [string.capacity] and |sect|\ [vector.capacity] should specify time complexity for ``capacity()``\ ","Jacksonville","|Nothing To Do|" +"`3005 `__","Destruction order of arrays by ``make_shared/allocate_shared``\ only recommended?","Jacksonville","" +"`3007 `__","``allocate_shared``\ should rebind allocator to *cv*-unqualified ``value_type``\ for construction","Jacksonville","" +"`3009 `__","Including ````\ doesn't provide ``std::size/empty/data``\ ","Jacksonville","|Complete|" +"`3010 `__","[networking.ts] ``uses_executor``\ says ""if a type ``T::executor_type``\ exists""","Jacksonville","" +"`3013 `__","``(recursive_)directory_iterator``\ construction and traversal should not be ``noexcept``\ ","Jacksonville","|Complete|" +"`3014 `__","More ``noexcept``\ issues with filesystem operations","Jacksonville","|Complete|" +"`3015 `__","``copy_options::*unspecified*``\ underspecified","Jacksonville","|Nothing To Do|" +"`3017 `__","``list splice``\ functions should use ``addressof``\ ","Jacksonville","|Complete|" +"`3020 `__","[networking.ts] Remove spurious nested ``value_type``\ buffer sequence requirement","Jacksonville","" +"`3026 `__","``filesystem::weakly_canonical``\ still defined in terms of ``canonical(p, base)``\ ","Jacksonville","|Complete|" +"`3030 `__","Who shall meet the requirements of ``try_lock``\ ?","Jacksonville","|Nothing To Do|" +"`3034 `__","P0767R1 breaks previously-standard-layout types","Jacksonville","|Complete|" +"`3035 `__","``std::allocator``\ 's constructors should be ``constexpr``\ ","Jacksonville","|Complete|" +"`3039 `__","Unnecessary ``decay``\ in ``thread``\ and ``packaged_task``\ ","Jacksonville","|Complete|" +"`3041 `__","Unnecessary ``decay``\ in ``reference_wrapper``\ ","Jacksonville","|Complete|" +"`3042 `__","``is_literal_type_v``\ should be inline","Jacksonville","|Complete|" +"`3043 `__","Bogus postcondition for ``filesystem_error``\ constructor","Jacksonville","|Complete|" +"`3045 `__","``atomic<*floating-point*>``\ doesn't have ``value_type``\ or ``difference_type``\ ","Jacksonville","" +"`3048 `__","``transform_reduce(exec, first1, last1, first2, init)``\ discards execution policy","Jacksonville","" +"`3051 `__","Floating point classifications were inadvertently changed in P0175","Jacksonville","|Nothing To Do|" +"`3075 `__","``basic_string``\ needs deduction guides from ``basic_string_view``\ ","Jacksonville","|Complete|" +"","","","" +"`2139 `__","What is a user-defined type?","Rapperswil","" +"`2970 `__","Return type of std::visit misspecified","Rapperswil","" +"`3058 `__","Parallel adjacent_difference shouldn't require creating temporaries","Rapperswil","" +"`3062 `__","Unnecessary decay_t in is_execution_policy_v should be remove_cvref_t","Rapperswil","" +"`3067 `__","recursive_directory_iterator::pop must invalidate","Rapperswil","|Nothing To Do|" +"`3071 `__","[networking.ts] read_until still refers to ""input sequence""","Rapperswil","|Nothing To Do|" +"`3074 `__","Non-member functions for valarray should only deduce from the valarray","Rapperswil","" +"`3076 `__","basic_string CTAD ambiguity","Rapperswil","|Complete|" +"`3079 `__","LWG 2935 forgot to fix the existing_p overloads of create_directory","Rapperswil","" +"`3080 `__","Floating point from_chars pattern specification breaks round-tripping","Rapperswil","" +"`3083 `__","What should ios::iword(-1) do?","Rapperswil","|Nothing To Do|" +"`3094 `__","[time.duration.io]p4 makes surprising claims about encoding","Rapperswil","" +"`3100 `__","Unnecessary and confusing ""empty span"" wording","Rapperswil","|Nothing To Do|" +"`3102 `__","Clarify span iterator and ``const_iterator`` behavior","Rapperswil","|Complete|" +"`3104 `__","Fixing duration division","Rapperswil","|Complete|" +"","","","" +"`2183 `__","Muddled allocator requirements for ``match_results``\ constructors","San Diego","|Complete|" +"`2184 `__","Muddled allocator requirements for ``match_results``\ assignments","San Diego","|Complete|" +"`2412 `__","``promise::set_value()``\ and ``promise::get_future()``\ should not race","San Diego","" +"`2499 `__","``operator>>(basic_istream&, CharT*)``\ makes it hard to avoid buffer overflows","San Diego","Resolved by P0487R1" +"`2682 `__","``filesystem::copy()``\ won't create a symlink to a directory","San Diego","|Nothing To Do|" +"`2697 `__","[concurr.ts] Behavior of ``future/shared_future``\ unwrapping constructor when given an invalid ``future``\ ","San Diego","" +"`2797 `__","Trait precondition violations","San Diego","Resolved by 1285R0" +"`2936 `__","Path comparison is defined in terms of the generic format","San Diego","|Complete|" +"`2943 `__","Problematic specification of the wide version of ``basic_filebuf::open``\ ","San Diego","|Nothing To Do|" +"`2960 `__","[fund.ts.v3] ``nonesuch``\ is insufficiently useless","San Diego","|Complete|" +"`2995 `__","``basic_stringbuf``\ default constructor forbids it from using SSO capacity","San Diego","" +"`2996 `__","Missing rvalue overloads for ``shared_ptr``\ operations","San Diego","" +"`3008 `__","``make_shared``\ (sub)object destruction semantics are not specified","San Diego","" +"`3022 `__","``is_convertible``\ may lead to ODR","San Diego","Resolved by 1285R0" +"`3025 `__","Map-like container deduction guides should use ``pair``\ , not ``pair``\ ","San Diego","|Complete|" +"`3031 `__","Algorithms and predicates with non-const reference arguments","San Diego","" +"`3037 `__","``polymorphic_allocator``\ and incomplete types","San Diego","" +"`3038 `__","``polymorphic_allocator::allocate``\ should not allow integer overflow to create vulnerabilities","San Diego","" +"`3054 `__","``uninitialized_copy``\ appears to not be able to meet its exception-safety guarantee","San Diego","" +"`3065 `__","LWG 2989 missed that all ``path``\ 's other operators should be hidden friends as well","San Diego","|Complete|" +"`3096 `__","``path::lexically_relative``\ is confused by trailing slashes","San Diego","|Complete|" +"`3116 `__","``*OUTERMOST_ALLOC_TRAITS*``\ needs ``remove_reference_t``\ ","San Diego","" +"`3122 `__","``__cpp_lib_chrono_udls``\ was accidentally dropped","San Diego","|Complete|" +"`3127 `__","``basic_osyncstream::rdbuf``\ needs a ````const_cast````\ ","San Diego","" +"`3128 `__","``strstream::rdbuf``\ needs a ````const_cast````\ ","San Diego","|Nothing To Do|" +"`3129 `__","``regex_token_iterator``\ constructor uses wrong pointer arithmetic","San Diego","" +"`3130 `__","|sect|\ [input.output] needs many ``addressof``\ ","San Diego","" +"`3131 `__","``addressof``\ all the things","San Diego","" +"`3132 `__","Library needs to ban macros named ``expects``\ or ``ensures``\ ","San Diego","|Nothing To Do|" +"`3134 `__","[fund.ts.v3] LFTSv3 contains extraneous [meta] variable templates that should have been deleted by P09961","San Diego","Resolved by P1210R0" +"`3137 `__","Header for ``__cpp_lib_to_chars``\ ","San Diego","|Complete|" +"`3145 `__","``file_clock``\ breaks ABI for C++17 implementations","San Diego","|Complete|" +"`3147 `__","Definitions of ""likely"" and ""unlikely"" are likely to cause problems","San Diego","" +"`3148 `__","````\ should be freestanding","San Diego","" +"`3153 `__","``Common``\ and ``common_type``\ have too little in common","San Diego","" +"`3154 `__","``Common``\ and ``CommonReference``\ have a common defect","San Diego","" +"","","","" +"`3012 `__","``atomic``\ is unimplementable for non-``is_trivially_copy_constructible T``\ ","Kona","" +"`3040 `__","``basic_string_view::starts_with``\ *Effects* are incorrect","Kona","|Complete|" +"`3077 `__","``(push|emplace)_back``\ should invalidate the ``end``\ iterator","Kona","|Nothing To Do|" +"`3087 `__","One final ``&x``\ in |sect|\ [list.ops]","Kona","|Nothing To Do|" +"`3101 `__","``span``\ 's ``Container``\ constructors need another constraint","Kona","|Complete|" +"`3112 `__","``system_error``\ and ``filesystem_error``\ constructors taking a ``string``\ may not be able to meet their postconditions","Kona","" +"`3119 `__","Program-definedness of closure types","Kona","|Nothing To Do|" +"`3133 `__","Modernizing numeric type requirements","Kona","" +"`3144 `__","``span``\ does not have a ````const_pointer````\ typedef","Kona","|Complete|" +"`3173 `__","Enable CTAD for *``ref-view``*\ ","Kona","" +"`3179 `__","``subrange``\ should always model ``Range``\ ","Kona","" +"`3180 `__","Inconsistently named return type for ``ranges::minmax_element``\ ","Kona","" +"`3182 `__","Specification of ``Same``\ could be clearer","Kona","" +"","","","" +"`2899 `__","``is_(nothrow_)move_constructible``\ and ``tuple``\ , ``optional``\ and ``unique_ptr``\ ","Cologne","" +"`3055 `__","``path::operator+=(*single-character*)``\ misspecified","Cologne","" +"`3158 `__","``tuple(allocator_arg_t, const Alloc&)``\ should be conditionally explicit","Cologne","" +"`3169 `__","``ranges``\ permutation generators discard useful information","Cologne","" +"`3183 `__","Normative permission to specialize Ranges variable templates","Cologne","" +"`3184 `__","Inconsistencies in ``bind_front``\ wording","Cologne","" +"`3185 `__","Uses-allocator construction functions missing ``constexpr``\ and ``noexcept``\ ","Cologne","" +"`3186 `__","``ranges``\ removal, partition, and ``partial_sort_copy``\ algorithms discard useful information","Cologne","" +"`3187 `__","`P0591R4 `__ reverted DR 2586 fixes to ``scoped_allocator_adaptor::construct()``\ ","Cologne","" +"`3191 `__","``std::ranges::shuffle``\ synopsis does not match algorithm definition","Cologne","" +"`3196 `__","``std::optional``\ is ill-formed is ``T``\ is an array","Cologne","|Complete|" +"`3198 `__","Bad constraint on ``std::span::span()``\ ","Cologne","|Complete|" +"`3199 `__","``istream >> bitset<0>``\ fails","Cologne","" +"`3202 `__","P0318R1 was supposed to be revised","Cologne","|Complete|" +"`3206 `__","``year_month_day``\ conversion to ``sys_days``\ uses not-existing member function","Cologne","|Complete|" +"`3208 `__","``Boolean``\ 's expression requirements are ordered inconsistently","Cologne","|Nothing To Do|" +"`3209 `__","Expression in ``year::ok()``\ returns clause is ill-formed","Cologne","|Complete|" +"","","","" +"`3231 `__","``year_month_day_last::day``\ specification does not cover ``!ok()``\ values","Belfast","|Nothing To Do|" +"`3225 `__","``zoned_time``\ converting constructor shall not be ``noexcept``\ ","Belfast","" +"`3190 `__","``std::allocator::allocate``\ sometimes returns too little storage","Belfast","" +"`3218 `__","Modifier for ``%d``\ parse flag does not match POSIX and ``format``\ specification","Belfast","" +"`3224 `__","``zoned_time``\ constructor from ``TimeZonePtr``\ does not specify initialization of ``tp_``\ ","Belfast","" +"`3230 `__","Format specifier ``%y/%Y``\ is missing locale alternative versions","Belfast","" +"`3232 `__","Inconsistency in ``zoned_time``\ deduction guides","Belfast","" +"`3222 `__","P0574R1 introduced preconditions on non-existent parameters","Belfast","" +"`3221 `__","Result of ``year_month``\ arithmetic with ``months``\ is ambiguous","Belfast","" +"`3235 `__","``parse``\ manipulator without abbreviation is not callable","Belfast","" +"`3246 `__","What are the constraints on the template parameter of ``basic_format_arg``\ ?","Belfast","" +"`3253 `__","``basic_syncbuf::basic_syncbuf()``\ should not be explicit","Belfast","" +"`3245 `__","Unnecessary restriction on ``'%p'``\ parse specifier","Belfast","" +"`3244 `__","Constraints for ``Source``\ in |sect|\ [fs.path.req] insufficiently constrainty","Belfast","" +"`3241 `__","``chrono-spec``\ grammar ambiguity in |sect|\ [time.format]","Belfast","" +"`3257 `__","Missing feature testing macro update from P0858","Belfast","" +"`3256 `__","Feature testing macro for ``constexpr``\ algorithms","Belfast","" +"`3273 `__","Specify ``weekday_indexed``\ to range of ``[0, 7]``\ ","Belfast","" +"`3070 `__","``path::lexically_relative``\ causes surprising results if a filename can also be a *root-name*","Belfast","" +"`3266 `__","``to_chars(bool)``\ should be deleted","Belfast","" +"`3272 `__","``%I%p``\ should parse/format ``duration``\ since midnight","Belfast","" +"`3259 `__","The definition of *constexpr iterators* should be adjusted","Belfast","" +"`3103 `__","Errors in taking subview of ``span``\ should be ill-formed where possible","Belfast","" +"`3274 `__","Missing feature test macro for ````\ ","Belfast","" +"`3276 `__","Class ``split_view::outer_iterator::value_type``\ should inherit from ``view_interface``\ ","Belfast","" +"`3277 `__","Pre-increment on prvalues is not a requirement of ``weakly_incrementable``\ ","Belfast","" +"`3149 `__","``DefaultConstructible``\ should require default initialization","Belfast","" +"","","","" +"`1203 `__","More useful rvalue stream insertion","Prague","12.0" +"`2859 `__","Definition of *reachable* in [ptr.launder] misses pointer arithmetic from pointer-interconvertible object","Prague","" +"`3018 `__","``shared_ptr``\ of function type","Prague","" +"`3050 `__","Conversion specification problem in ``chrono::duration``\ constructor","Prague","" +"`3141 `__","``CopyConstructible``\ doesn't preserve source values","Prague","" +"`3150 `__","``UniformRandomBitGenerator``\ should validate ``min``\ and ``max``\ ","Prague","" +"`3175 `__","The ``CommonReference``\ requirement of concept ``SwappableWith``\ is not satisfied in the example","Prague","" +"`3194 `__","``ConvertibleTo``\ prose does not match code","Prague","" +"`3200 `__","``midpoint``\ should not constrain ``T``\ is complete","Prague","" +"`3201 `__","``lerp``\ should be marked as ``noexcept``\ ","Prague","|Complete|" +"`3226 `__","``zoned_time``\ constructor from ``string_view``\ should accept ``zoned_time``\ ","Prague","" +"`3233 `__","Broken requirements for ``shared_ptr``\ converting constructors","Prague","" +"`3237 `__","LWG 3038 and 3190 have inconsistent PRs","Prague","" +"`3238 `__","Insufficiently-defined behavior of ``std::function``\ deduction guides","Prague","" +"`3242 `__","``std::format``\ : missing rules for ``arg-id``\ in ``width``\ and ``precision``\ ","Prague","" +"`3243 `__","``std::format``\ and negative zeroes","Prague","" +"`3247 `__","``ranges::iter_move``\ should perform ADL-only lookup of ``iter_move``\ ","Prague","" +"`3248 `__","``std::format``\ ``#b``\ , ``#B``\ , ``#o``\ , ``#x``\ , and ``#X``\ presentation types misformat negative numbers","Prague","" +"`3250 `__","``std::format``\ : ``#``\ (alternate form) for NaN and inf","Prague","" +"`3251 `__","Are ``std::format``\ alignment specifiers applied to string arguments?","Prague","" +"`3252 `__","Parse locale's aware modifiers for commands are not consistent with POSIX spec","Prague","" +"`3254 `__","Strike ``stop_token``\ 's ``operator!=``\ ","Prague","" +"`3255 `__","``span``\ 's ``array``\ constructor is too strict","Prague","|Complete|" +"`3260 `__","``year_month*``\ arithmetic rejects durations convertible to years","Prague","" +"`3262 `__","Formatting of negative durations is not specified","Prague","" +"`3264 `__","``sized_range``\ and ``ranges::size``\ redundantly use ``disable_sized_range``\ ","Prague","" +"`3269 `__","Parse manipulators do not specify the result of the extraction from stream","Prague","" +"`3270 `__","Parsing and formatting ``%j``\ with ``duration``\ s","Prague","" +"`3280 `__","View converting constructors can cause constraint recursion and are unneeded","Prague","" +"`3281 `__","Conversion from ``*pair-like*``\ types to ``subrange``\ is a silent semantic promotion","Prague","" +"`3282 `__","``subrange``\ converting constructor should disallow derived to base conversions","Prague","" +"`3284 `__","``random_access_iterator``\ semantic constraints accidentally promote difference type using unary negate","Prague","" +"`3285 `__","The type of a customization point object shall satisfy ``semiregular``\ ","Prague","" +"`3286 `__","``ranges::size``\ is not required to be valid after a call to ``ranges::begin``\ on an input range","Prague","" +"`3291 `__","``iota_view::iterator``\ has the wrong ``iterator_category``\ ","Prague","" +"`3292 `__","``iota_view``\ is under-constrained","Prague","" +"`3294 `__","``zoned_time``\ deduction guides misinterprets ``string``\ /``char*``\ ","Prague","" +"`3296 `__","Inconsistent default argument for ``basic_regex<>::assign``\ ","Prague","" +"`3299 `__","Pointers don't need customized iterator behavior","Prague","" +"`3300 `__","Non-array ``ssize``\ overload is underconstrained","Prague","" +"`3301 `__","``transform_view::iterator``\ has incorrect ``iterator_category``\ ","Prague","" +"`3302 `__","Range adaptor objects ``keys``\ and ``values``\ are unspecified","Prague","" +"`3303 `__","Bad ""``constexpr``\ "" marker for ``destroy/destroy_n``\ ","Prague","" +"`3304 `__","Allocate functions of ``std::polymorphic_allocator``\ should require ``[[nodiscard]]``\ ","Prague","" +"`3307 `__","``std::allocator().allocate(n)``\ ","Prague","" +"`3310 `__","Replace ``SIZE_MAX``\ with ``numeric_limits::max()``\ ","Prague","" +"`3313 `__","``join_view::iterator::operator--``\ is incorrectly constrained","Prague","" +"`3314 `__","Is stream insertion behavior locale dependent when ``Period::type``\ is ``micro``\ ?","Prague","" +"`3315 `__","Correct Allocator Default Behavior","Prague","" +"`3316 `__","Correctly define epoch for ``utc_clock``\ / ``utc_timepoint``\ ","Prague","" +"`3317 `__","Incorrect ``operator<<``\ for floating-point durations","Prague","" +"`3318 `__","Clarify whether clocks can represent time before their epoch","Prague","" +"`3319 `__","Properly reference specification of IANA time zone database","Prague","" +"`3320 `__","``span::cbegin/cend``\ methods produce different results than ``std::[ranges::]cbegin/cend``\ ","Prague","|Complete|" +"`3321 `__","``uninitialized_construct_using_allocator``\ should use ``construct_at``\ ","Prague","" +"`3323 `__","``*has-tuple-element*``\ helper concept needs ``convertible_to``\ ","Prague","" +"`3324 `__","Special-case ``std::strong/weak/partial_order``\ for pointers","Prague","" +"`3325 `__","Constrain return type of transformation function for ``transform_view``\ ","Prague","" +"`3326 `__","``enable_view``\ has false positives","Prague","" +"`3327 `__","Format alignment specifiers vs. text direction","Prague","" +"`3328 `__","Clarify that ``std::string``\ is not good for UTF-8","Prague","" +"`3329 `__","``totally_ordered_with``\ both directly and indirectly requires ``common_reference_with``\ ","Prague","" +"`3330 `__","Include ````\ from most library headers","Prague","" +"`3331 `__","Define ``totally_ordered/_with``\ in terms of ``*partially-ordered-with*``\ ","Prague","" +"`3332 `__","Issue in |sect|\ [time.format]","Prague","" +"`3334 `__","``basic_osyncstream``\ move assignment and destruction calls ``basic_syncbuf::emit()``\ twice","Prague","" +"`3335 `__","Resolve C++20 NB comments US 273 and GB 274","Prague","" +"`3338 `__","Rename ``default_constructible``\ to ``default_initializable``\ ","Prague","" +"`3340 `__","Formatting functions should throw on argument/format string mismatch in |sect|\ [format.functions]","Prague","" +"`3346 `__","``pair``\ and ``tuple``\ copy and move constructor have backwards specification","Prague","" +"`3347 `__","``std::pair``\ now requires ``T``\ and ``U``\ to be less-than-comparable","Prague","" +"`3348 `__","``__cpp_lib_unwrap_ref``\ in wrong header","Prague","" +"`3349 `__","Missing ``__cpp_lib_constexpr_complex``\ for P0415R1","Prague","" +"`3350 `__","Simplify return type of ``lexicographical_compare_three_way``\ ","Prague","" +"`3351 `__","``ranges::enable_safe_range``\ should not be constrained","Prague","" +"`3352 `__","``strong_equality``\ isn't a thing","Prague","" +"`3354 `__","``has_strong_structural_equality``\ has a meaningless definition","Prague","" +"`3355 `__","The memory algorithms should support move-only input iterators introduced by P1207","Prague","" +"`3356 `__","``__cpp_lib_nothrow_convertible``\ should be ``__cpp_lib_is_nothrow_convertible``\ ","Prague","" +"`3358 `__","|sect|\ [span.cons] is mistaken that ``to_address``\ can throw","Prague","" +"`3359 `__","````\ leap second support should allow for negative leap seconds","Prague","" +"`3360 `__","``three_way_comparable_with``\ is inconsistent with similar concepts","Prague","" +"`3362 `__","Strike ``stop_source``\ 's ``operator!=``\ ","Prague","" +"`3363 `__","``drop_while_view``\ should opt-out of ``sized_range``\ ","Prague","" +"`3364 `__","Initialize data members of ranges and their iterators","Prague","" +"`3367 `__","Integer-class conversions should not throw","Prague","" +"`3369 `__","``span``\ 's deduction-guide for built-in arrays doesn't work","Prague","" +"`3371 `__","``visit_format_arg``\ and ``make_format_args``\ are not hidden friends","Prague","" +"`3372 `__","``vformat_to``\ should not try to deduce ``Out``\ twice","Prague","" +"`3373 `__","``{to,from}_chars_result``\ and ``format_to_n_result``\ need the ""we really mean what we say"" wording","Prague","" +"`3374 `__","P0653 + P1006 should have made the other ``std::to_address``\ overload ``constexpr``\ ","Prague","" +"`3375 `__","``decay``\ in ``viewable_range``\ should be ``remove_cvref``\ ","Prague","" +"`3377 `__","``elements_view::iterator``\ befriends a specialization of itself","Prague","" +"`3379 `__","""``safe``\ "" in several library names is misleading","Prague","" +"`3380 `__","``common_type``\ and comparison categories","Prague","" +"`3381 `__","``begin``\ and ``data``\ must agree for ``contiguous_range``\ ","Prague","" +"`3382 `__","NTTP for ``pair``\ and ``array``\ ","Prague","" +"`3383 `__","|sect|\ [time.zone.leap.nonmembers] ``sys_seconds``\ should be replaced with ``seconds``\ ","Prague","" +"`3384 `__","``transform_view::*sentinel*``\ has an incorrect ``operator-``\ ","Prague","" +"`3385 `__","``common_iterator``\ is not sufficiently constrained for non-copyable iterators","Prague","" +"`3387 `__","|sect|\ [range.reverse.view] ``reverse_view``\ unintentionally requires ``range``\ ","Prague","" +"`3388 `__","``view``\ iterator types have ill-formed ``<=>``\ operators","Prague","" +"`3389 `__","A move-only iterator still does not have a ``counted_iterator``\ ","Prague","" +"`3390 `__","``make_move_iterator()``\ cannot be used to construct a ``move_iterator``\ for a move-only iterator","Prague","" +"`3393 `__","Missing/incorrect feature test macro for coroutines","Prague","" +"`3395 `__","Definition for three-way comparison needs to be updated (US 152)","Prague","" +"`3396 `__","Clarify point of reference for ``source_location::current()``\ (DE 169)","Prague","" +"`3397 `__","``ranges::basic_istream_view::iterator``\ should not provide ``iterator_category``\ ","Prague","" +"`3398 `__","``tuple_element_t``\ is also wrong for ``const subrange``\ ","Prague","" diff --git a/libcxx/docs/Cxx2aStatusPaperStatus.csv b/libcxx/docs/Cxx2aStatusPaperStatus.csv new file mode 100644 --- /dev/null +++ b/libcxx/docs/Cxx2aStatusPaperStatus.csv @@ -0,0 +1,195 @@ +"Paper #","Group","Paper Name","Meeting","Status","First released version" +"`P0463R1 `__","LWG","Endian just Endian","Toronto","|Complete|","7.0" +"`P0674R1 `__","LWG","Extending make_shared to Support Arrays","Toronto","","" +"","","","","","" +"`P0020R6 `__","LWG","Floating Point Atomic","Albuquerque","","" +"`P0053R7 `__","LWG","C++ Synchronized Buffered Ostream","Albuquerque","","" +"`P0202R3 `__","LWG","Add constexpr modifiers to functions in and Headers","Albuquerque","|In Progress| [#note-P0202]_","7.0" +"`P0415R1 `__","LWG","Constexpr for ``std::complex``\ ","Albuquerque","|In Progress|","7.0" +"`P0439R0 `__","LWG","Make ``std::memory_order``\ a scoped enumeration","Albuquerque","|Complete|","" +"`P0457R2 `__","LWG","String Prefix and Suffix Checking","Albuquerque","|Complete|","6.0" +"`P0550R2 `__","LWG","Transformation Trait ``remove_cvref``\ ","Albuquerque","|Complete|","6.0" +"`P0600R1 `__","LWG","nodiscard in the Library","Albuquerque","|In Progress| [#note-P0600]_","7.0" +"`P0616R0 `__","LWG","de-pessimize legacy algorithms with std::move","Albuquerque","","" +"`P0653R2 `__","LWG","Utility to convert a pointer to a raw pointer","Albuquerque","|Complete|","6.0" +"`P0718R2 `__","LWG","Atomic shared_ptr","Albuquerque","","" +"`P0767R1 `__","CWG","Deprecate POD","Albuquerque","|Complete|","7.0" +"`P0768R1 `__","CWG","Library Support for the Spaceship (Comparison) Operator","Albuquerque","|Complete|","" +"`P0777R1 `__","LWG","Treating Unnecessary ``decay``\ ","Albuquerque","|Complete|","7.0" +"`P0122R7 `__","LWG","","Jacksonville","|Complete|","7.0" +"`P0355R7 `__","LWG","Extending chrono to Calendars and Time Zones","Jacksonville","|In Progress|","" +"`P0551R3 `__","LWG","Thou Shalt Not Specialize ``std``\ Function Templates!","Jacksonville","|Complete|","11.0" +"`P0753R2 `__","LWG","Manipulators for C++ Synchronized Buffered Ostream","Jacksonville","","" +"`P0754R2 `__","LWG","","Jacksonville","|Complete|","7.0" +"`P0809R0 `__","LWG","Comparing Unordered Containers","Jacksonville","","" +"`P0858R0 `__","LWG","Constexpr iterator requirements","Jacksonville","","" +"`P0905R1 `__","CWG","Symmetry for spaceship","Jacksonville","","" +"`P0966R1 `__","LWG","``string::reserve``\ Should Not Shrink","Jacksonville","|Complete|","8.0" +"","","","","","" +"`P0019R8 `__","LWG","Atomic Ref","Rapperswil","","" +"`P0458R2 `__","LWG","Checking for Existence of an Element in Associative Containers","Rapperswil","|Complete|","" +"`P0475R1 `__","LWG","LWG 2511: guaranteed copy elision for piecewise construction","Rapperswil","","" +"`P0476R2 `__","LWG","Bit-casting object representations","Rapperswil","","" +"`P0528R3 `__","CWG","The Curious Case of Padding Bits, Featuring Atomic Compare-and-Exchange","Rapperswil","","" +"`P0542R5 `__","CWG","Support for contract based programming in C++","Rapperswil","","" +"`P0556R3 `__","LWG","Integral power-of-2 operations","Rapperswil","|Complete|","9.0" +"`P0619R4 `__","LWG","Reviewing Deprecated Facilities of C++17 for C++20","Rapperswil","|Partial| [#note-P0619]_","" +"`P0646R1 `__","LWG","Improving the Return Value of Erase-Like Algorithms","Rapperswil","|Complete|","10.0" +"`P0722R3 `__","CWG","Efficient sized delete for variable sized classes","Rapperswil","|Complete|","9.0" +"`P0758R1 `__","LWG","Implicit conversion traits and utility functions","Rapperswil","|Complete|","" +"`P0759R1 `__","LWG","fpos Requirements","Rapperswil","|Complete|","11.0" +"`P0769R2 `__","LWG","Add shift to ","Rapperswil","","" +"`P0788R3 `__","LWG","Standard Library Specification in a Concepts and Contracts World","Rapperswil","","" +"`P0879R0 `__","LWG","Constexpr for swap and swap related functions Also resolves LWG issue 2800.","Rapperswil","","" +"`P0887R1 `__","LWG","The identity metafunction","Rapperswil","|Complete|","8.0" +"`P0892R2 `__","CWG","explicit(bool)","Rapperswil","","" +"`P0898R3 `__","LWG","Standard Library Concepts","Rapperswil","","" +"`P0935R0 `__","LWG","Eradicating unnecessarily explicit default constructors from the standard library","Rapperswil","","" +"`P0941R2 `__","CWG","Integrating feature-test macros into the C++ WD","Rapperswil","|In Progress|","" +"`P1023R0 `__","LWG","constexpr comparison operators for std::array","Rapperswil","|Complete|","8.0" +"`P1025R1 `__","CWG","Update The Reference To The Unicode Standard","Rapperswil","","" +"`P1120R0 `__","CWG","Consistency improvements for <=> and other comparison operators","Rapperswil","","" +"","","","","","" +"`P0318R1 `__","LWG","unwrap_ref_decay and unwrap_reference","San Diego","|Complete|","8.0" +"`P0356R5 `__","LWG","Simplified partial function application","San Diego","* *","" +"`P0357R3 `__","LWG","reference_wrapper for incomplete types","San Diego","|Complete|","8.0" +"`P0482R6 `__","CWG","char8_t: A type for UTF-8 characters and strings","San Diego","|In Progress|","" +"`P0487R1 `__","LWG","Fixing ``operator>>(basic_istream&, CharT*)``\ (LWG 2499)","San Diego","|Complete|","8.0" +"`P0591R4 `__","LWG","Utility functions to implement uses-allocator construction","San Diego","* *","" +"`P0595R2 `__","CWG","P0595R2 std::is_constant_evaluated()","San Diego","|Complete|","9.0" +"`P0602R4 `__","LWG","variant and optional should propagate copy/move triviality","San Diego","|Complete|","8.0" +"`P0608R3 `__","LWG","A sane variant converting constructor","San Diego","|Complete|","9.0" +"`P0655R1 `__","LWG","visit: Explicit Return Type for visit","San Diego","* *","" +"`P0771R1 `__","LWG","std::function move constructor should be noexcept","San Diego","|Complete|","6.0" +"`P0896R4 `__","LWG","The One Ranges Proposal","San Diego","* *","" +"`P0899R1 `__","LWG","P0899R1 - LWG 3016 is not a defect","San Diego","|Nothing To Do|","" +"`P0919R3 `__","LWG","Heterogeneous lookup for unordered containers","San Diego","|Complete|","12.0" +"`P0972R0 `__","LWG"," ``zero()``\ , ``min()``\ , and ``max()``\ should be noexcept","San Diego","|Complete|","8.0" +"`P1006R1 `__","LWG","Constexpr in std::pointer_traits","San Diego","|Complete|","8.0" +"`P1007R3 `__","LWG","``std::assume_aligned``\ ","San Diego","* *","" +"`P1020R1 `__","LWG","Smart pointer creation with default initialization","San Diego","* *","" +"`P1032R1 `__","LWG","Misc constexpr bits","San Diego","* *","" +"`P1085R2 `__","LWG","Should Span be Regular?","San Diego","|Complete|","8.0" +"`P1123R0 `__","LWG","Editorial Guidance for merging P0019r8 and P0528r3","San Diego","* *","" +"`P1148R0 `__","LWG","Cleaning up Clause 20","San Diego","* *","" +"`P1165R1 `__","LWG","Make stateful allocator propagation more consistent for ``operator+(basic_string)``\ ","San Diego","* *","" +"`P1209R0 `__","LWG","Adopt Consistent Container Erasure from Library Fundamentals 2 for C++20","San Diego","|Complete|","8.0" +"`P1210R0 `__","LWG","Completing the Rebase of Library Fundamentals, Version 3, Working Draft","San Diego","* *","" +"`P1236R1 `__","CWG","Alternative Wording for P0907R4 Signed Integers are Two's Complement","San Diego","* *","" +"`P1248R1 `__","LWG","Remove CommonReference requirement from StrictWeakOrdering (a.k.a Fixing Relations)","San Diego","* *","" +"`P1285R0 `__","LWG","Improving Completeness Requirements for Type Traits","San Diego","* *","" +"`P1353R0 `__","CWG","Missing feature test macros","San Diego","* *","" +"","","","","","" +"`P0339R6 `__","LWG","polymorphic_allocator<> as a vocabulary type","Kona","","" +"`P0340R3 `__","LWG","Making std::underlying_type SFINAE-friendly","Kona","|Complete|","9.0" +"`P0738R2 `__","LWG","I Stream, You Stream, We All Stream for istream_iterator","Kona","","" +"`P0811R3 `__","LWG","Well-behaved interpolation for numbers and pointers","Kona","|Complete|","9.0" +"`P0920R2 `__","LWG","Precalculated hash values in lookup","Kona","Reverted by `P1661 `__","" +"`P1001R2 `__","LWG","Target Vectorization Policies from Parallelism V2 TS to C++20","Kona","","" +"`P1024R3 `__","LWG","Usability Enhancements for std::span","Kona","|Complete|","9.0" +"`P1164R1 `__","LWG","Make create_directory() Intuitive","Kona","","" +"`P1227R2 `__","LWG","Signed ssize() functions, unsigned size() functions","Kona","|Complete|","9.0" +"`P1252R2 `__","LWG","Ranges Design Cleanup","Kona","","" +"`P1286R2 `__","CWG","Contra CWG DR1778","Kona","","" +"`P1357R1 `__","LWG","Traits for [Un]bounded Arrays","Kona","|Complete|","9.0" +"`P1458R1 `__","LWG","Mandating the Standard Library: Clause 16 - Language support library","Kona","|Complete|","9.0" +"`P1459R1 `__","LWG","Mandating the Standard Library: Clause 18 - Diagnostics library","Kona","|Complete|","9.0" +"`P1462R1 `__","LWG","Mandating the Standard Library: Clause 20 - Strings library","Kona","|Complete|","9.0" +"`P1463R1 `__","LWG","Mandating the Standard Library: Clause 21 - Containers library","Kona","","" +"`P1464R1 `__","LWG","Mandating the Standard Library: Clause 22 - Iterators library","Kona","|Complete|","9.0" +"","","","","","" +"`P0325 `__","LWG","to_array from LFTS with updates","Cologne","|Complete|","10.0" +"`P0408 `__","LWG","Efficient Access to basic_stringbuf's Buffer","Cologne","","" +"`P0466 `__","LWG","Layout-compatibility and Pointer-interconvertibility Traits","Cologne","","" +"`P0553 `__","LWG","Bit operations","Cologne","|Complete|","9.0" +"`P0631 `__","LWG","Math Constants","Cologne","|Complete|","11.0" +"`P0645 `__","LWG","Text Formatting","Cologne","","" +"`P0660 `__","LWG","Stop Token and Joining Thread, Rev 10","Cologne","","" +"`P0784 `__","CWG","More constexpr containers","Cologne","|Complete|","12.0" +"`P0980 `__","LWG","Making std::string constexpr","Cologne","","" +"`P1004 `__","LWG","Making std::vector constexpr","Cologne","","" +"`P1035 `__","LWG","Input Range Adaptors","Cologne","","" +"`P1065 `__","LWG","Constexpr INVOKE","Cologne","","" +"`P1135 `__","LWG","The C++20 Synchronization Library","Cologne","|Complete|","" +"`P1207 `__","LWG","Movability of Single-pass Iterators","Cologne","","" +"`P1208 `__","LWG","Adopt source_location for C++20","Cologne","","" +"`P1355 `__","LWG","Exposing a narrow contract for ceil2","Cologne","|Complete|","9.0" +"`P1361 `__","LWG","Integration of chrono with text formatting","Cologne","","" +"`P1423 `__","LWG","char8_t backward compatibility remediation","Cologne","","" +"`P1424 `__","LWG","'constexpr' feature macro concerns","Cologne","","" +"`P1466 `__","LWG","Miscellaneous minor fixes for chrono","Cologne","","" +"`P1474 `__","LWG","Helpful pointers for ContiguousIterator","Cologne","","" +"`P1502 `__","LWG","Standard library header units for C++20","Cologne","","" +"`P1522 `__","LWG","Iterator Difference Type and Integer Overflow","Cologne","","" +"`P1523 `__","LWG","Views and Size Types","Cologne","","" +"`P1612 `__","LWG","Relocate Endian's Specification","Cologne","|Complete|","10.0" +"`P1614 `__","LWG","The Mothership has Landed","Cologne","|In Progress|","" +"`P1638 `__","LWG","basic_istream_view::iterator should not be copyable","Cologne","","" +"`P1643 `__","LWG","Add wait/notify to atomic_ref","Cologne","","" +"`P1644 `__","LWG","Add wait/notify to atomic","Cologne","","" +"`P1650 `__","LWG","Output std::chrono::days with 'd' suffix","Cologne","","" +"`P1651 `__","LWG","bind_front should not unwrap reference_wrapper","Cologne","","" +"`P1652 `__","LWG","Printf corner cases in std::format","Cologne","","" +"`P1661 `__","LWG","Remove dedicated precalculated hash lookup interface","Cologne","|Nothing To Do|","" +"`P1754 `__","LWG","Rename concepts to standard_case for C++20, while we still can","Cologne","","" +"","","","","","" +"`P0883 `__","LWG","Fixing Atomic Initialization","Belfast","* *","" +"`P1391 `__","LWG","Range constructor for std::string_view","Belfast","* *","" +"`P1394 `__","LWG","Range constructor for std::span","Belfast","* *","" +"`P1456 `__","LWG","Move-only views","Belfast","* *","" +"`P1622 `__","LWG","Mandating the Standard Library: Clause 32 - Thread support library","Belfast","* *","" +"`P1645 `__","LWG","constexpr for numeric algorithms","Belfast","* *","" +"`P1664 `__","LWG","reconstructible_range - a concept for putting ranges back together","Belfast","* *","" +"`P1686 `__","LWG","Mandating the Standard Library: Clause 27 - Time library","Belfast","* *","" +"`P1690 `__","LWG","Refinement Proposal for P0919 Heterogeneous lookup for unordered containers","Belfast","|Complete|","12.0" +"`P1716 `__","LWG","ranges compare algorithm are over-constrained","Belfast","* *","" +"`P1718 `__","LWG","Mandating the Standard Library: Clause 25 - Algorithms library","Belfast","* *","" +"`P1719 `__","LWG","Mandating the Standard Library: Clause 26 - Numerics library","Belfast","* *","" +"`P1720 `__","LWG","Mandating the Standard Library: Clause 28 - Localization library","Belfast","* *","" +"`P1721 `__","LWG","Mandating the Standard Library: Clause 29 - Input/Output library","Belfast","* *","" +"`P1722 `__","LWG","Mandating the Standard Library: Clause 30 - Regular Expression library","Belfast","* *","" +"`P1723 `__","LWG","Mandating the Standard Library: Clause 31 - Atomics library","Belfast","* *","" +"`P1855 `__","LWG","Make ````\ freestanding","Belfast","* *","" +"`P1862 `__","LWG","Ranges adaptors for non-copyable iterators","Belfast","* *","" +"`P1865 `__","LWG","Add max() to latch and barrier","Belfast","* *","" +"`P1869 `__","LWG","Rename 'condition_variable_any' interruptible wait methods","Belfast","* *","" +"`P1870 `__","LWG","forwarding-range is too subtle","Belfast","* *","" +"`P1871 `__","LWG","Should concepts be enabled or disabled?","Belfast","* *","" +"`P1872 `__","LWG","span should have size_type, not index_type","Belfast","|Complete|","10.0" +"`P1878 `__","LWG","Constraining Readable Types","Belfast","* *","" +"`P1892 `__","LWG","Extended locale-specific presentation specifiers for std::format","Belfast","* *","" +"`P1902 `__","LWG","Missing feature-test macros 2018-2019","Belfast","* *","" +"`P1959 `__","LWG","Remove std::weak_equality and std::strong_equality","Belfast","* *","" +"`P1960 `__","LWG","NB Comment Changes Reviewed by SG1","Belfast","* *","" +"`P1961 `__","LWG","Harmonizing the definitions of total order for pointers","Belfast","* *","" +"`P1965 `__","LWG","Blanket Wording for Specifying ""Hidden Friends""","Belfast","* *","" +"","","","","","" +"`P0586 `__","LWG","Safe integral comparisons","Prague","* *","" +"`P0593 `__","CWG","Implicit creation of objects for low-level object manipulation","Prague","* *","" +"`P1115 `__","LWG","Improving the Return Value of Erase-Like Algorithms II: Free erase/erase if","Prague","|Complete|","11.0" +"`P1243 `__","LWG","Rangify New Algorithms","Prague","* *","" +"`P1460 `__","LWG","Mandating the Standard Library: Clause 20 - Utilities library","Prague","* *","" +"`P1739 `__","LWG","Avoid template bloat for safe_ranges in combination with ""subrange-y"" view adaptors","Prague","* *","" +"`P1831 `__","LWG","Deprecating volatile: library","Prague","* *","" +"`P1868 `__","LWG","width: clarifying units of width and precision in std::format","Prague","* *","" +"`P1908 `__","CWG","Reserving Attribute Namespaces for Future Use","Prague","* *","" +"`P1937 `__","CWG","Fixing inconsistencies between constexpr and consteval functions","Prague","* *","" +"`P1956 `__","LWG","On the names of low-level bit manipulation functions","Prague","|Complete|","12.0" +"`P1957 `__","CWG","Converting from ``T*``\ to bool should be considered narrowing (re: US 212)","Prague","* *","" +"`P1963 `__","LWG","Fixing US 313","Prague","* *","" +"`P1964 `__","LWG","Wording for boolean-testable","Prague","* *","" +"`P1970 `__","LWG","Consistency for size() functions: Add ranges::ssize","Prague","* *","" +"`P1973 `__","LWG","Rename ""_default_init"" Functions, Rev1","Prague","* *","" +"`P1976 `__","LWG","Fixed-size span construction from dynamic range","Prague","|Complete|","11.0" +"`P1981 `__","LWG","Rename leap to leap_second","Prague","* *","" +"`P1982 `__","LWG","Rename link to time_zone_link","Prague","* *","" +"`P1983 `__","LWG","Wording for GB301, US296, US292, US291, and US283","Prague","* *","" +"`P1994 `__","LWG","elements_view needs its own sentinel","Prague","* *","" +"`P2002 `__","CWG","Defaulted comparison specification cleanups","Prague","* *","" +"`P2045 `__","LWG","Missing Mandates for the standard library","Prague","* *","" +"`P2085 `__","CWG","Consistent defaulted comparisons","Prague","* *","" +"`P2091 `__","LWG","Issues with range access CPOs","Prague","* *","" +"`P2101 `__","LWG","'Models' subsumes 'satisfies' (Wording for US298 and US300)","Prague","* *","" +"`P2102 `__","LWG","Make 'implicit expression variations' more explicit (Wording for US185)","Prague","* *","" +"`P2106 `__","LWG","Alternative wording for GB315 and GB316","Prague","* *","" +"`P2116 `__","LWG","Remove tuple-like protocol support from fixed-extent span","Prague","|Complete|","11.0" diff --git a/libcxx/docs/Styles.rst b/libcxx/docs/Styles.rst new file mode 100644 --- /dev/null +++ b/libcxx/docs/Styles.rst @@ -0,0 +1,31 @@ +.. raw:: html + + + +.. role:: nothingtodo +.. role:: inprogress +.. role:: partial +.. role:: complete + + +.. |Nothing To Do| replace:: :nothingtodo:`Nothing To Do` +.. |In Progress| replace:: :inprogress:`In Progress` +.. |Partial| replace:: :partial:`Partial` +.. |Complete| replace:: :complete:`Complete` + +.. |sect| unicode:: U+00A7 +.. |hellip| unicode:: U+2026 diff --git a/libcxx/docs/conf.py b/libcxx/docs/conf.py --- a/libcxx/docs/conf.py +++ b/libcxx/docs/conf.py @@ -40,7 +40,7 @@ # General information about the project. project = u'libc++' -copyright = u'2011-2018, LLVM Project' +copyright = u'2011-2020, LLVM Project' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the diff --git a/libcxx/docs/index.rst b/libcxx/docs/index.rst --- a/libcxx/docs/index.rst +++ b/libcxx/docs/index.rst @@ -38,6 +38,9 @@ UsingLibcxx BuildingLibcxx TestingLibcxx + Cxx1yStatus + Cxx1zStatus + Cxx2aStatus .. toctree:: @@ -132,8 +135,9 @@ --------------------- * C++11 - Complete -* `C++14 - Complete `__ -* `C++17 - In Progress `__ +* :ref:`C++14 - Complete ` +* :ref:`C++17 - In Progress ` +* :ref:`C++20 - In Progress ` * `Post C++14 Technical Specifications - In Progress `__ * :ref:`C++ Feature Test Macro Status ` diff --git a/libcxx/www/cxx1y_status.html b/libcxx/www/cxx1y_status.html --- a/libcxx/www/cxx1y_status.html +++ b/libcxx/www/cxx1y_status.html @@ -1,277 +1,14 @@ - - - + + - - libc++ C++14 Status - - + + + + libc++ C++14 Status - - - -
- -

libc++ C++14 Status

- - -

In April 2013, the C++ standard committee approved the draft for the next version of the C++ standard, initially known as "C++1y".

-

The draft standard includes papers and issues that were voted on at the previous three meetings (Kona, Portland, and Bristol)

-

In August 2014, this draft was approved by ISO as C++14

-

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: -

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

- -

Paper Status

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Paper #GroupPaper NameMeetingStatusFirst released version
3346LWGTerminology for Container Element Requirements - Rev 1KonaComplete3.4
3421LWGMaking Operator Functors greater<>PortlandComplete3.4
3462LWGstd::result_of and SFINAEPortlandComplete3.4
3469LWGConstexpr Library Additions: chrono, v3PortlandComplete3.4
3470LWGConstexpr Library Additions: containers, v2PortlandComplete3.4
3471LWGConstexpr Library Additions: utilities, v3PortlandComplete3.4
3302LWGConstexpr Library Additions: complex, v2PortlandComplete3.4
3545LWGAn Incremental Improvement to integral_constantBristolComplete3.4
3644LWGNull Forward IteratorsBristolComplete3.4
3668LWGstd::exchange()BristolComplete3.4
3658LWGCompile-time integer sequencesBristolComplete3.4
3670LWGAddressing Tuples by TypeBristolComplete3.4
3671LWGMaking non-modifying sequence operations more robustBristolComplete3.4
3656LWGmake_uniqueBristolComplete3.4
3654LWGQuoted StringsBristolComplete3.4
3642LWGUser-defined LiteralsBristolComplete3.4
3655LWGTransformationTraits Redux (excluding part 4)BristolComplete3.4
3657LWGAdding heterogeneous comparison lookup to associative containersBristolComplete3.4
3672LWGA proposal to add a utility class to represent optional objectsBristolRemoved from Draft Standardn/a
3669LWGFixing constexpr member functions without constBristolComplete3.4
3662LWGC++ Dynamic Arrays (dynarray)BristolRemoved from Draft Standardn/a
3659SG1Shared Locking in C++BristolComplete3.4
3779LWGUser-defined Literals for std::complexChicagoComplete3.4
3789LWGConstexpr Library Additions: functionalChicagoComplete3.4
3924LWGDiscouraging rand() in C++14IssaquahComplete3.5
3887LWGConsistent Metafunction AliasesIssaquahComplete3.5
3891SG1A proposal to rename shared_mutex to shared_timed_mutexIssaquahComplete3.5
- -

Library Working group Issues Status

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Issue #Issue NameMeetingStatus
1214Insufficient/inconsistent key immutability requirements for associative containersKonaComplete
2009Reporting out-of-bound values on numeric string conversionsKonaComplete
2010is_* traits for binding operations can't be meaningfully specializedKonaComplete
2015Incorrect pre-conditions for some type traitsKonaComplete
2021Further incorrect usages of result_ofKonaComplete
2028messages_base::catalog overspecifiedKonaComplete
2033Preconditions of reserve, shrink_to_fit, and resize functionsKonaComplete
2039Issues with std::reverse and std::copy_ifKonaComplete
2044No definition of "Stable" for copy algorithmsKonaComplete
2045forward_list::merge and forward_list::splice_after with unequal allocatorsKonaComplete
2047Incorrect "mixed" move-assignment semantics of unique_ptrKonaComplete
2050Unordered associative containers do not use allocator_traits to define member typesKonaComplete
2053Errors in regex bitmask typesKonaComplete
2061make_move_iterator and arraysKonaComplete
2064More noexcept issues in basic_stringKonaComplete
2065Minimal allocator interfaceKonaComplete
2067packaged_task should have deleted copy c'tor with const parameterKonaComplete
2069Inconsistent exception spec for basic_string move constructorKonaComplete
2096Incorrect constraints of future::get in regard to MoveAssignableKonaComplete
2102Why is std::launch an implementation-defined type?KonaComplete
2071std::valarray move-assignmentPortlandComplete
2074Off by one error in std::reverse_copyPortlandComplete
2081Allocator requirements should include CopyConstructiblePortlandComplete
2083const-qualification on weak_ptr::owner_beforePortlandComplete
2086Overly generic type support for math functionsPortlandComplete
2099Unnecessary constraints of va_start() usagePortlandComplete
2103std::allocator_traits<std::allocator<T>>::propagate_on_container_move_assignmentPortlandComplete
2105Inconsistent requirements on const_iterator's value_typePortlandComplete
2110remove can't swap but note says it mightPortlandComplete
2123merge() allocator requirements for lists versus forward listsPortlandComplete
2005unordered_map::insert(T&&) protection should apply to map tooPortlandComplete
2011Unexpected output required of stringsPortlandComplete
2048Unnecessary mem_fn overloadsPortlandComplete
2049is_destructible is underspecifiedPortlandComplete
2056future_errc enums start with value 0 (invalid value for broken_promise)PortlandComplete
2058valarray and begin/endPortlandComplete
2091Misplaced effect in m.try_lock_for()BristolComplete
2092Vague Wording for condition_variable_anyBristolComplete
2093Throws clause of condition_variable::wait with predicateBristolComplete
2094duration conversion overflow shouldn't participate in overload resolutionBristolComplete
2122merge() stability for lists versus forward listsBristolComplete
2128Absence of global functions cbegin/cendBristolComplete
2145error_category default constructorBristolComplete
2147Unclear hint type in Allocator's allocate functionBristolComplete
2148Hashing enums should be supported directly by std::hashBristolComplete
2149Concerns about 20.8/5BristolComplete
2162allocator_traits::max_size missing noexceptBristolComplete
2163nth_element requires inconsistent post-conditionsBristolComplete
2169Missing reset() requirements in unique_ptr specializationBristolComplete
2172Does atomic_compare_exchange_* accept v == nullptr arguments?BristolComplete
2080Specify when once_flag becomes invalidBristolComplete
2098promise throws clausesBristolComplete
2109Incorrect requirements for hash specializationsBristolComplete
2130missing ordering constraints for fencesBristolComplete
2138atomic_flag::clear ordering constraintsBristolComplete
2140notify_all_at_thread_exit synchronizationBristolComplete
2144Missing noexcept specification in type_indexBristolComplete
2174wstring_convert::converted() should be noexceptBristolComplete
2175string_convert and wbuffer_convert validityBristolComplete
2176Special members for wstring_convert and wbuffer_convertBristolComplete
2177Requirements on Copy/MoveInsertableBristolComplete
2185Missing throws clause for future/shared_future::wait_for/wait_untilBristolComplete
2187vector<bool> is missing emplace and emplace_back member functionsBristolComplete
2190ordering of condition variable operations, reflects Posix discussionBristolComplete
2196Specification of is_*[copy/move]_[constructible/assignable] unclear for non-referencable typesBristolComplete
2197Specification of is_[un]signed unclear for non-arithmetic typesBristolComplete
2200Data race avoidance for all containers, not only for sequencesBristolComplete
2203scoped_allocator_adaptor uses wrong argument types for piecewise constructionBristolComplete
2207basic_string::at should not have a Requires clauseBristolComplete
2209assign() overspecified for sequence containersBristolComplete
2210Missing allocator-extended constructor for allocator-aware containersBristolComplete
2211Replace ambiguous use of "Allocator" in container requirementsBristolComplete
2222Inconsistency in description of forward_list::splice_after single-element overloadBristolComplete
2225Unrealistic header inclusion checks requiredBristolComplete
2229Standard code conversion facets underspecifiedBristolComplete
2231DR 704 removes complexity guarantee for clear()BristolComplete
2235Undefined behavior without proper requirements on basic_string constructorsBristolComplete
2141common_type trait produces reference typesChicagoComplete
2246unique_ptr assignment effects w.r.t. deleterChicagoComplete
2247Type traits and std::nullptr_tChicagoComplete
2085Wrong description of effect 1 of basic_istream::ignoreChicagoComplete
2087iostream_category() and noexceptChicagoComplete
2143ios_base::xalloc should be thread-safeChicagoComplete
2150Unclear specification of find_endChicagoComplete
2180Exceptions from std::seed_seq operationsChicagoComplete
2194Impossible container requirements for adaptor typesChicagoComplete
2013Do library implementers have the freedom to add constexpr?ChicagoComplete
2018regex_traits::isctype Returns clause is wrongChicagoComplete
2078Throw specification of async() incompleteChicagoComplete
2097packaged_task constructors should be constrainedChicagoComplete
2100Timed waiting functions cannot timeout if launch::async policy usedChicagoComplete
2120What should async do if neither 'async' nor 'deferred' is set in policy?ChicagoComplete
2159atomic_flag initializationChicagoComplete
2275Why is forward_as_tuple not constexpr?ChicagoComplete
2284Inconsistency in allocator_traits::max_sizeChicagoComplete
2298is_nothrow_constructible is always false because of create<>ChicagoComplete
2300Redundant sections for map and multimap members should be removedChicagoComplete
NB comment: GB9 Remove gets from C++14ChicagoComplete
2135Unclear requirement for exceptions thrown in condition_variable::wait()IssaquahComplete
2291std::hash is vulnerable to collision DoS attackIssaquahComplete
2142packaged_task::operator() synchronization too broad?IssaquahComplete
2240Probable misuse of term "function scope" in [thread.condition]IssaquahComplete
2252Strong guarantee on vector::push_back() still broken with C++11?IssaquahComplete
2257Simplify container requirements with the new algorithmsIssaquahComplete
2268Setting a default argument in the declaration of a member function assign of std::basic_stringIssaquahComplete
2271regex_traits::lookup_classname specification unclearIssaquahComplete
2272quoted should use char_traits::eq for character comparisonIssaquahComplete
2278User-defined literals for Standard Library typesIssaquahComplete
2280begin / end for arrays should be constexpr and noexceptIssaquahComplete
2285make_reverse_iteratorIssaquahComplete
2299Effects of inaccessible key_compare::is_transparent type are not clearIssaquahComplete
1450Contradiction in regex_constantsIssaquahComplete
2003String exception inconsistency in erase.IssaquahComplete
2112User-defined classes that cannot be derived fromIssaquahComplete
2132std::function ambiguityIssaquahComplete
2182Container::[const_]reference types are misleadingly specifiedIssaquahComplete
2188Reverse iterator does not fully support targets that overload operator&IssaquahComplete
2193Default constructors for standard library containers are explicitIssaquahComplete
2205Problematic postconditions of regex_match and regex_searchIssaquahComplete
2213Return value of std::regex_replaceIssaquahComplete
2258a.erase(q1, q2) unable to directly return q2IssaquahComplete
2263Comparing iterators and allocator pointers with different const-characterIssaquahComplete
2293Wrong facet used by num_put::do_putIssaquahComplete
2301Why is std::tie not constexpr?IssaquahComplete
2304Complexity of count in unordered associative containersIssaquahComplete
2306match_results::reference should be value_type&, not const value_type&IssaquahComplete
2308Clarify container destructor requirements w.r.t. std::arrayIssaquahComplete
2313tuple_size should always derive from integral_constantIssaquahComplete
2314apply() should return decltype(auto) and use decay_t before tuple_sizeIssaquahComplete
2315weak_ptr should be movableIssaquahComplete
2316weak_ptr::lock() should be atomicIssaquahComplete
2317The type property queries should be UnaryTypeTraits returning size_tIssaquahComplete
2320select_on_container_copy_construction() takes allocators, not containersIssaquahComplete
2322Associative(initializer_list, stuff) constructors are underspecifiedIssaquahComplete
2323vector::resize(n, t)'s specification should be simplifiedIssaquahComplete
2324Insert iterator constructors should use addressof()IssaquahComplete
2329regex_match()/regex_search() with match_results should forbid temporary stringsIssaquahComplete
2330regex("meow", regex::icase) is technically forbidden but should be permittedIssaquahComplete
2332regex_iterator/regex_token_iterator should forbid temporary regexesIssaquahComplete
2339Wording issue in nth_elementIssaquahComplete
2341Inconsistency between basic_ostream::seekp(pos) and basic_ostream::seekp(off, dir)IssaquahComplete
2344quoted()'s interaction with padding is unclearIssaquahComplete
2346integral_constant's member functions should be marked noexceptIssaquahComplete
2350min, max, and minmax should be constexprIssaquahComplete
2356Stability of erasure in unordered associative containersIssaquahComplete
2357Remaining "Assignable" requirementIssaquahComplete
2359How does regex_constants::nosubs affect basic_regex::mark_count()?IssaquahComplete
2360reverse_iterator::operator*() is unimplementableIssaquahComplete
2104unique_lock move-assignment should not be noexceptIssaquahComplete
2186Incomplete action on async/launch::deferredIssaquahComplete
2075Progress guarantees, lock-free property, and scheduling assumptionsIssaquahComplete
2288Inconsistent requirements for shared mutexesIssaquahComplete
- -

Last Updated: 25-Mar-2014

-
+ If you are not redirected automatically, follow this link to new documentation. diff --git a/libcxx/www/cxx1z_status.html b/libcxx/www/cxx1z_status.html --- a/libcxx/www/cxx1z_status.html +++ b/libcxx/www/cxx1z_status.html @@ -1,509 +1,14 @@ - - - + + - - libc++ C++17 Status - - + + + + libc++ C++17 Status - - - -
- -

libc++ C++17 Status

- - -

In November 2014, the C++ standard committee created a draft for the next version of the C++ standard, initially known as "C++1z".

-

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.

- -

Reminder: Features in unreleased drafts of the standard are subject to change.

- -

The groups that have contributed papers: -

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

- -

Paper Status

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Paper #GroupPaper NameMeetingStatusFirst released version
N3911LWGTransformationTrait Alias void_t.UrbanaComplete3.6
N4089LWGSafe conversions in unique_ptr<T[]>.UrbanaIn progress3.9
N4169LWGA proposal to add invoke function templateUrbanaComplete3.7
N4190LWGRemoving auto_ptr, random_shuffle(), And Old Stuff.UrbanaIn progress
N4258LWGCleaning-up noexcept in the Library.UrbanaIn progress3.7
N4259CWGWording for std::uncaught_exceptionsUrbanaComplete3.7
N4277LWGTriviallyCopyable reference_wrapper.UrbanaComplete3.2
N4279LWGImproved insertion interface for unique-key maps.UrbanaComplete3.7
N4280LWGNon-member size() and moreUrbanaComplete3.6
N4284LWGContiguous Iterators.UrbanaComplete3.6
N4285CWGCleanup for exception-specification and throw-expression.UrbanaComplete4.0
N4387LWGimproving pair and tupleLenexaComplete4.0
N4389LWGbool_constantLenexaComplete3.7
N4508LWGshared_mutex for C++17LenexaComplete3.7
N4366LWGLWG 2228 missing SFINAE ruleLenexaComplete3.1
N4510LWGMinimal incomplete type support for standard containers, revision 4LenexaComplete3.6
P0004R1LWGRemove Deprecated iostreams aliases.KonaComplete3.8
P0006R0LWGAdopt Type Traits Variable Templates for C++17.KonaComplete3.8
P0092R1LWGPolishing <chrono>KonaComplete3.8
P0007R1LWGConstant View: A proposal for a std::as_const helper function template.KonaComplete3.8
P0156R0LWGVariadic lock_guard(rev 3).KonaReverted in Kona3.9
P0074R0LWGMaking std::owner_less more flexibleKonaComplete3.8
P0013R1LWGLogical type traits rev 2KonaComplete3.8
P0024R2LWGThe Parallelism TS Should be StandardizedJacksonville
P0226R1LWGMathematical Special Functions for C++17Jacksonville
P0220R1LWGAdopt Library Fundamentals V1 TS Components for C++17JacksonvilleIn Progress
P0218R1LWGAdopt the File System TS for C++17JacksonvilleComplete7.0
P0033R1LWGRe-enabling shared_from_thisJacksonvilleComplete3.9
P0005R4LWGAdopt not_fn from Library Fundamentals 2 for C++17JacksonvilleComplete3.9
P0152R1LWGconstexpr atomic::is_always_lock_freeJacksonvilleComplete3.9
P0185R1LWGAdding [nothrow-]swappable traitsJacksonvilleComplete3.9
P0253R1LWGFixing a design mistake in the searchers interfaceJacksonvilleComplete3.9
P0025R0LWGAn algorithm to "clamp" a value between a pair of boundary valuesJacksonvilleComplete3.9
P0154R1LWGconstexpr std::hardware_{constructive,destructive}_interference_sizeJacksonville
P0030R1LWGProposal to Introduce a 3-Argument Overload to std::hypotJacksonvilleComplete3.9
P0031R0LWGA Proposal to Add Constexpr Modifiers to reverse_iterator, move_iterator, array and Range AccessJacksonvilleComplete4.0
P0272R1LWGGive std::string a non-const .data() member functionJacksonvilleComplete3.9
P0077R2LWGis_callable, the missing INVOKE related traitJacksonvilleComplete3.9
p0032r3LWGHomogeneous interface for variant, any and optionalOuluComplete4.0
p0040r3LWGExtending memory management toolsOuluComplete4.0
p0063r3LWGC++17 should refer to C11 instead of C99OuluComplete7.0
p0067r3LWGElementary string conversionsOuluNow P0067R5n/a
p0083r3LWGSplicing Maps and SetsOuluComplete8.0
p0084r2LWGEmplace Return TypeOuluComplete4.0
p0088r3LWGVariant: a type-safe union for C++17OuluComplete4.0
p0137r1CWGCore Issue 1776: Replacement of class objects containing reference membersOuluComplete6.0
p0163r0LWGshared_ptr::weak_typeOuluComplete3.9
p0174r2LWGDeprecating Vestigial Library Parts in C++17OuluPartial
p0175r1LWGSynopses for the C libraryOulu
p0180r2LWGReserve a New Library Namespace for Future StandardizationOuluNothing to don/a
p0181r1LWGOrdered by DefaultOuluRemoved in Konan/a
p0209r2LWGmake_from_tuple: apply for constructionOuluComplete3.9
p0219r1LWGRelative Paths for FilesystemOuluComplete7.0
p0254r2LWGIntegrating std::string_view and std::stringOuluComplete4.0
p0258r2LWGhas_unique_object_representationsOuluComplete6.0
p0295r0LWGAdopt Selected Library Fundamentals V2 Components for C++17OuluComplete4.0
p0302r1LWGRemoving Allocator Support in std::functionOuluComplete4.0
p0307r2LWGMaking Optional Greater Equal AgainOuluComplete4.0
p0336r1LWGBetter Names for Parallel Execution Policies in C++17Oulu
p0337r0LWGDelete operator= for polymorphic_allocatorOuluComplete3.9
p0346r1LWGA <random> Nomenclature TweakOuluComplete3.9
p0358r1LWGFixes for not_fnOuluComplete3.9
p0371r1LWGTemporarily discourage memory_order_consumeOuluNothing to don/a
p0392r0LWGAdapting string_view by filesystem pathsOuluComplete4.0
p0393r3LWGMaking Variant Greater EqualOuluComplete4.0
P0394r4LWGHotel Parallelifornia: terminate() for Parallel Algorithms Exception HandlingOulu
P0003R5LWGRemoving Deprecated Exception Specifications from C++17IssaquahComplete5.0
P0067R5LWGElementary string conversions, revision 5IssaquahPartially done
P0403R1LWGLiteral suffixes for basic_string_viewIssaquahComplete4.0
P0414R2LWGMerging shared_ptr changes from Library Fundamentals to C++17IssaquahComplete11.0
P0418R2LWGFail or succeed: there is no atomic latticeIssaquah
P0426R1LWGConstexpr for std::char_traitsIssaquahComplete4.0
P0435R1LWGResolving LWG Issues re common_typeIssaquahComplete4.0
P0502R0LWGThrowing out of a parallel algorithm terminates - but how?Issaquah
P0503R0LWGCorrecting library usage of "literal type"IssaquahComplete4.0
P0504R0LWGRevisiting in-place tag types for any/optional/variantIssaquahComplete4.0
P0505R0LWGWording for GB 50 - constexpr for chronoIssaquahComplete4.0
P0508R0LWGWording for GB 58 - structured bindings for node_handlesIssaquah
P0509R1LWGUpdating "Restrictions on exception handling"IssaquahNothing to don/a
P0510R0LWGDisallowing references, incomplete types, arrays, and empty variantsIssaquahComplete4.0
P0513R0LWGPoisoning the HashIssaquahComplete5.0
P0516R0LWGClarify That shared_future's Copy Operations have Wide ContractsIssaquahComplete4.0
P0517R0LWGMake future_error ConstructibleIssaquahComplete4.0
P0521R0LWGProposed Resolution for CA 14 (shared_ptr use_count/unique)IssaquahNothing to don/a
P0156R2LWGVariadic Lock guard(rev 5)KonaComplete5.0
P0270R3CWGRemoving C dependencies from signal handler wordingKona
P0298R3CWGA byte type definitionKonaComplete5.0
P0317R1LWGDirectory Entry Caching for FilesystemKonaComplete7.0
P0430R2LWGFile system library on non-POSIX-like operating systemsKonaComplete7.0
P0433R2LWGToward a resolution of US7 and US14: Integrating template deduction for class templates into the standard libraryKonaIn progress7.0
P0452R1LWGUnifying <numeric> Parallel AlgorithmsKona
P0467R2LWGIterator Concerns for Parallel AlgorithmsKona
P0492R2LWGProposed Resolution of C++17 National Body Comments for FilesystemsKonaComplete7.0
P0518R1LWGAllowing copies as arguments to function objects given to parallel algorithms in response to CH11Kona
P0523R1LWGWording for CH 10: Complexity of parallel algorithmsKona
P0548R1LWGcommon_type and durationKonaComplete5.0
P0558R1LWGResolving atomic<T> named base class inconsistenciesKona
P0574R1LWGAlgorithm Complexity Constraints and Parallel OverloadsKona
P0599R1LWGnoexcept for hash functionsKonaComplete5.0
P0604R0LWGResolving GB 55, US 84, US 85, US 86KonaComplete
P0607R0LWGInline Variables for the Standard LibraryKonaIn Progress6.0
P0618R0LWGDeprecating <codecvt>Kona
P0623R0LWGFinal C++17 Parallel Algorithms FixesKona
P0682R1LWGRepairing elementary string conversionsToronto
P0739R0LWGSome improvements to class template argument deduction integration into the standard libraryTorontoComplete5.0
- -

The parts of P0607 that are not done are the <regex> bits.

-

So far, only the <string>, sequence containers, container adaptors and <regex> portions of P0433 have been implemented.

- -

[ Note: "Nothing to do" means that no library changes were needed to implement this change -- end note]

- -

Library Working group Issues Status

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Issue #Issue NameMeetingStatus
2016Allocators must be no-throw swappableUrbanaComplete
2118unique_ptr for array does not support cv qualification conversion of actual argumentUrbanaComplete
2170Aggregates cannot be DefaultConstructibleUrbanaComplete
2308Clarify container destructor requirements w.r.t. std::arrayUrbanaComplete
2340Replacement allocation functions declared as inlineUrbanaComplete
2354Unnecessary copying when inserting into maps with braced-init syntaxUrbanaComplete
2377std::align requirements overly strictUrbanaComplete
2396underlying_type doesn't say what to do for an incomplete enumeration typeUrbanaComplete
2399shared_ptr's constructor from unique_ptr should be constrainedUrbanaComplete
2400shared_ptr's get_deleter() should use addressof()UrbanaComplete
2401std::function needs more noexceptUrbanaComplete
2404mismatch()'s complexity needs to be updatedUrbanaComplete
2408SFINAE-friendly common_type / iterator_traits is missing in C++14UrbanaComplete
2106move_iterator wrapping iterators returning prvaluesUrbanaComplete
2129User specializations of std::initializer_listUrbanaComplete
2212tuple_size for const pair request headerUrbanaComplete
2217operator==(sub_match, string) slices on embedded '\0'sUrbanaComplete
2230"see below" for initializer_list constructors of unordered containersUrbanaComplete
2233bad_function_call::what() unhelpfulUrbanaComplete
2266vector and deque have incorrect insert requirementsUrbanaComplete
2325minmax_element()'s behavior differing from max_element()'s should be notedUrbanaComplete
2361Apply 2299 resolution throughout libraryUrbanaComplete
2365Missing noexcept in shared_ptr::shared_ptr(nullptr_t)UrbanaComplete
2376bad_weak_ptr::what() overspecifiedUrbanaComplete
2387More nested types that must be accessible and unambiguousUrbanaComplete
2059C++0x ambiguity problem with map::eraseLenexaComplete
2063Contradictory requirements for string move assignmentLenexaComplete
2076Bad CopyConstructible requirement in set constructorsLenexaComplete
2160Unintended destruction ordering-specification of resizeLenexaComplete
2168Inconsistent specification of uniform_real_distribution constructorLenexaComplete
2239min/max/minmax requirementsLenexaComplete
2364deque and vector pop_back don't specify iterator invalidation requirementsLenexaComplete
2369constexpr max(initializer_list) vs max_elementLenexaComplete
2378Behaviour of standard exception typesLenexaComplete
2403stof() should call strtof() and wcstof()LenexaComplete
2406negative_binomial_distribution should reject p == 1LenexaComplete
2407packaged_task(allocator_arg_t, const Allocator&, F&&) should neither be constrained nor explicitLenexaComplete
2411shared_ptr is only contextually convertible to boolLenexaComplete
2415Inconsistency between unique_ptr and shared_ptrLenexaComplete
2420function does not discard the return value of the target objectLenexaComplete
2425operator delete(void*, size_t) doesn't invalidate pointers sufficientlyLenexaComplete
2427Container adaptors as sequence containers, reduxLenexaComplete
2428"External declaration" used without being definedLenexaComplete
2433uninitialized_copy()/etc. should tolerate overloaded operator&LenexaComplete
2434shared_ptr::use_count() is efficientLenexaComplete
2437iterator_traits::reference can and can't be voidLenexaComplete
2438std::iterator inheritance shouldn't be mandatedLenexaComplete
2439unique_copy() sometimes can't fall back to reading its outputLenexaComplete
2440seed_seq::size() should be noexceptLenexaComplete
2442call_once() shouldn't DECAY_COPY()LenexaComplete
2448Non-normative Container destructor specificationLenexaComplete
2454Add raw_storage_iterator::base() memberLenexaComplete
2455Allocator default construction should be allowed to throwLenexaComplete
2458N3778 and new library deallocation signaturesLenexaComplete
2459std::polar should require a non-negative rhoLenexaComplete
2464try_emplace and insert_or_assign misspecifiedLenexaComplete
2467is_always_equal has slightly inconsistent defaultLenexaComplete
2470Allocator's destroy function should be allowed to fail to instantiateLenexaComplete
2482[c.strings] Table 73 mentions nonexistent functionsLenexaComplete
2488Placeholders should be allowed and encouraged to be constexprLenexaComplete
1169num_get not fully compatible with strto*KonaComplete
2072Unclear wording about capacity of temporary buffersKonaComplete
2101Some transformation types can produce impossible typesKonaComplete
2111Which unexpected/terminate handler is called from the exception handling runtime?KonaComplete
2119Missing hash specializations for extended integer typesKonaComplete
2127Move-construction with raw_storage_iteratorKonaComplete
2133Attitude to overloaded comma for iteratorsKonaComplete
2156Unordered containers' reserve(n) reserves for n-1 elementsKonaComplete
2218Unclear how containers use allocator_traits::construct()KonaComplete
2219INVOKE-ing a pointer to member with a reference_wrapper as the object expressionKonaComplete
2224Ambiguous status of access to non-live objectsKonaComplete
2234assert() should allow usage in constant expressionsKonaComplete
2244Issue on basic_istream::seekgKonaComplete
2250Follow-up On Library Issue 2207KonaComplete
2259Issues in 17.6.5.5 rules for member functionsKonaComplete
2273regex_match ambiguityKonaComplete
2336is_trivially_constructible/is_trivially_assignable traits are always falseKonaComplete
2353std::next is over-constrainedKonaComplete
2367pair and tuple are not correctly implemented for is_constructible with no argsKonaComplete
2380May <cstdlib> provide long ::abs(long) and long long ::abs(long long)?KonaComplete
2384Allocator's deallocate function needs better specificationKonaComplete
2385function::assign allocator argument doesn't make senseKonaComplete
2435reference_wrapper::operator()'s Remark should be deletedKonaComplete
2447Allocators and volatile-qualified value typesKonaComplete
2462std::ios_base::failure is overspecifiedKonaComplete
2466allocator_traits::max_size() default behavior is incorrectKonaComplete
2469Wrong specification of Requires clause of operator[] for map and unordered_mapKonaComplete
2473basic_filebuf's relation to C FILE semanticsKonaComplete
2476scoped_allocator_adaptor is not assignableKonaComplete
2477Inconsistency of wordings in std::vector::erase() and std::deque::erase()KonaComplete
2483throw_with_nested() should use is_finalKonaComplete
2484rethrow_if_nested() is doubly unimplementableKonaComplete
2485get() should be overloaded for const tuple&&KonaComplete
2486mem_fn() should be required to use perfect forwardingKonaComplete
2487bind() should be const-overloaded, not cv-overloadedKonaComplete
2489mem_fn() should be noexceptKonaComplete
2492Clarify requirements for compKonaComplete
2495There is no such thing as an Exception Safety elementKonaComplete
2192Validity and return type of std::abs(0u) is unclearJacksonvilleComplete
2276Missing requirement on std::promise::set_exceptionJacksonvilleComplete
2296std::addressof should be constexprJacksonvilleComplete (Clang Only)
2450(greater|less|greater_equal|less_equal)<void> do not yield a total order for pointersJacksonvilleComplete
2520N4089 broke initializing unique_ptr<T[]> from a nullptrJacksonvilleComplete
2522[fund.ts.v2] Contradiction in set_default_resource specificationJacksonvilleComplete
2523std::promise synopsis shows two set_value_at_thread_exit()'s for no apparent reasonJacksonvilleComplete
2537Constructors for priority_queue taking allocators should call make_heapJacksonvilleComplete
2539[fund.ts.v2] invocation_trait definition definition doesn't work for surrogate call functionsJacksonville
2545Simplify wording for bind without explicitly specified return typeJacksonvilleComplete
2557Logical operator traits are broken in the zero-argument caseJacksonvilleComplete
2558[fund.ts.v2] Logical operator traits are broken in the zero-argument caseJacksonvilleComplete
2559Error in LWG 2234's resolutionJacksonvilleComplete
2560is_constructible underspecified when applied to a function typeJacksonvilleBroken in 3.6; See r261653.
2565std::function's move constructor should guarantee nothrow for reference_wrappers and function pointersJacksonvilleComplete
2566Requirements on the first template parameter of container adaptorsJacksonvilleComplete
2571§[map.modifiers]/2 imposes nonsensical requirement on insert(InputIterator, InputIterator)JacksonvilleComplete
2572The remarks for shared_ptr::operator* should apply to cv-qualified void as wellJacksonvilleComplete
2574[fund.ts.v2] std::experimental::function::operator=(F&&) should be constrainedJacksonvilleComplete
2575[fund.ts.v2] experimental::function::assign should be removedJacksonville
2576istream_iterator and ostream_iterator should use std::addressofJacksonvilleComplete
2577{shared,unique}_lock should use std::addressofJacksonvilleComplete
2579Inconsistency wrt Allocators in basic_string assignment vs. basic_string::assignJacksonvilleComplete
2581Specialization of <type_traits> variable templates should be prohibitedJacksonvilleComplete
2582§[res.on.functions]/2's prohibition against incomplete types shouldn't apply to type traitsJacksonvilleComplete
2583There is no way to supply an allocator for basic_string(str, pos)JacksonvilleComplete
2585forward_list::resize(size_type, const value_type&) effects incorrectJacksonvilleComplete
2586Wrong value category used in scoped_allocator_adaptor::construct()JacksonvilleComplete
2590Aggregate initialization for std::arrayJacksonvilleComplete
2181Exceptions from seed sequence operationsOuluComplete
2309mutex::lock() should not throw device_or_resource_busyOuluComplete
2310Public exposition only member in std::arrayOuluComplete
2312tuple's constructor constraints need to be phrased more preciselyOuluComplete
2328Rvalue stream extraction should use perfect forwardingOuluComplete
2393std::function's Callable definition is brokenOuluComplete
2422std::numeric_limits<T>::is_modulo description: "most machines" errataOuluComplete
2426Issue about compare_exchangeOulu
2436Comparators for associative containers should always be CopyConstructibleOuluComplete
2441Exact-width atomic typedefs should be providedOuluComplete
2451[fund.ts.v2] optional should 'forward' T's implicit conversionsOuluNothing to do
2509[fund.ts.v2] any_cast doesn't work with rvalue reference targets and cannot move with a value targetOuluComplete
2516[fund.ts.v2] Public "exposition only" members in observer_ptrOulu
2542Missing const requirements for associative containersOulu
2549Tuple EXPLICIT constructor templates that take tuple parameters end up taking references to temporaries and will create dangling referencesOuluComplete
2550Wording of unordered container's clear() method complexityOuluComplete
2551[fund.ts.v2] "Exception safety" cleanup in library fundamentals requiredOuluComplete
2555[fund.ts.v2] No handling for over-aligned types in optionalOuluComplete
2573[fund.ts.v2] std::hash<std::experimental::shared_ptr> does not work for arraysOulu
2596vector::data() should use addressofOuluComplete
2667path::root_directory() description is confusingOuluComplete
2669recursive_directory_iterator effects refers to non-existent functionsOuluComplete
2670system_complete refers to undefined variable 'base'OuluComplete
2671Errors in CopyOuluComplete
2673status() effects cannot be implemented as specifiedOuluComplete
2674Bidirectional iterator requirement on path::iterator is very expensiveOuluComplete
2683filesystem::copy() says "no effects"OuluComplete
2684priority_queue lacking comparator typedefOuluComplete
2685shared_ptr deleters must not throw on move constructionOuluComplete
2687{inclusive,exclusive}_scan misspecifiedOulu
2688clamp misses preconditions and has extraneous condition on resultOuluComplete
2689Parallel versions of std::copy and std::move shouldn't be in orderOulu
2698Effect of assign() on iterators/pointers/referencesOuluComplete
2704recursive_directory_iterator's members should require '*this is dereferenceable'OuluComplete
2706Error reporting for recursive_directory_iterator::pop() is under-specifiedOuluComplete
2707path construction and assignment should have "string_type&&" overloadsOuluComplete
2709offsetof is unnecessarily impreciseOulu
2710"Effects: Equivalent to ..." doesn't count "Synchronization:" as determined semanticsOuluComplete
2711path is convertible from approximately everything under the sunOuluComplete
2716Specification of shuffle and sample disallows lvalue URNGsOuluComplete
2718Parallelism bug in [algorithms.parallel.exec] p2Oulu
2719permissions function should not be noexcept due to narrow contractOuluComplete
2720permissions function incorrectly specified for symlinksOuluComplete
2721remove_all has incorrect post conditionsOuluComplete
2723Do directory_iterator and recursive_directory_iterator become the end iterator upon error?OuluComplete
2724The protected virtual member functions of memory_resource should be privateOulu
2725filesystem::exists(const path&, error_code&) error reportingOuluComplete
2726[recursive_]directory_iterator::increment(error_code&) is underspecifiedOuluComplete
2727Parallel algorithms with constexpr specifierOulu
2728status(p).permissions() and symlink_status(p).permissions() are not specifiedOuluComplete
2062Effect contradictions w/o no-throw guarantee of std::function swapsIssaquahComplete
2166Heap property underspecified?Issaquah
2221No formatted output operator for nullptrIssaquahComplete
2223shrink_to_fit effect on iterator validityIssaquahComplete
2261Are containers required to use their 'pointer' type internally?Issaquah
2394locale::name specification unclear - what is implementation-defined?IssaquahComplete
2460LWG issue 2408 and value categoriesIssaquahComplete
2468Self-move-assignment of library typesIssaquah
2475Allow overwriting of std::basic_string terminator with charT() to allow cleaner interoperation with legacy APIsIssaquahComplete
2503multiline option should be added to syntax_option_typeIssaquahComplete
2510Tag types should not be DefaultConstructibleIssaquahComplete
2514Type traits must not be finalIssaquahComplete
2518[fund.ts.v2] Non-member swap for propagate_const should call member swapIssaquahComplete
2519Iterator operator-= has gratuitous undefined behaviourIssaquahComplete
2521[fund.ts.v2] weak_ptr's converting move constructor should be modified as well for array supportIssaquah
2525[fund.ts.v2] get_memory_resource should be const and noexceptIssaquah
2527[fund.ts.v2] ALLOCATOR_OF for function::operator= has incorrect defaultIssaquah
2531future::get should explicitly state that the shared state is releasedIssaquah
2534Constrain rvalue stream operatorsIssaquah
2536What should <complex.h> do?IssaquahComplete
2540unordered_multimap::insert hint iteratorIssaquahComplete
2543LWG 2148 (hash support for enum types) seems under-specifiedIssaquahComplete
2544istreambuf_iterator(basic_streambuf* s) effects unclear when s is 0IssaquahComplete
2556Wide contract for future::share()IssaquahComplete
2562Consistent total ordering of pointers by comparison functorsIssaquah
2567Specification of logical operator traits uses BaseCharacteristic, which is defined only for UnaryTypeTraits and BinaryTypeTraitsIssaquahComplete
2568[fund.ts.v2] Specification of logical operator traits uses BaseCharacteristic, which is defined only for UnaryTypeTraits and BinaryTypeTraitsIssaquah
2569conjunction and disjunction requirements are too strictIssaquahComplete
2570[fund.ts.v2] conjunction and disjunction requirements are too strictIssaquah
2578Iterator requirements should reference iterator traitsIssaquahComplete
2584 ECMAScript IdentityEscape is ambiguousIssaquah
2587"Convertible to bool" requirement in conjunction and disjunctionIssaquahResolved by 2567
2588[fund.ts.v2] "Convertible to bool" requirement in conjunction and disjunctionIssaquah
2589match_results can't satisfy the requirements of a containerIssaquahComplete
2591std::function's member template target() should not lead to undefined behaviourIssaquahComplete
2598addressof works on temporariesIssaquahComplete
2664operator/ (and other append) semantics not useful if argument has rootIssaquahComplete
2665remove_filename() post condition is incorrectIssaquahComplete
2672Should is_empty use error_code in its specification?IssaquahComplete
2678std::filesystem enum classes overspecifiedIssaquahComplete
2679Inconsistent Use of Effects and Equivalent ToIssaquahComplete
2680Add "Equivalent to" to filesystemIssaquahComplete
2681filesystem::copy() cannot copy symlinksIssaquahComplete
2682filesystem::copy() won't create a symlink to a directoryIssaquahComplete
2686Why is std::hash specialized for error_code, but not error_condition?IssaquahComplete
2694Application of LWG 436 accidentally deleted definition of "facet"IssaquahComplete
2696Interaction between make_shared and enable_shared_from_this is underspecifiedIssaquahNothing to do
2699Missing restriction in [numeric.requirements]IssaquahComplete
2712copy_file(from, to, ...) has a number of unspecified error conditionsIssaquahComplete
2722equivalent incorrectly specifies throws clauseIssaquahComplete
2729Missing SFINAE on std::pair::operator=Issaquah
2732Questionable specification of path::operator/= and path::appendIssaquahComplete
2733[fund.ts.v2] gcd / lcm and boolIssaquahComplete
2735std::abs(short), std::abs(signed char) and others should return int instead of double in order to be compatible with C++98 and CIssaquahComplete
2736nullopt_t insufficiently constrainedIssaquahComplete
2738is_constructible with void typesIssaquahComplete
2739Issue with time_point non-member subtraction with an unsigned durationIssaquahComplete
2740constexpr optional::operator->IssaquahComplete
2742Inconsistent string interface taking string_viewIssaquahComplete
2744any's in_place constructorsIssaquahComplete
2745[fund.ts.v2] Implementability of LWG 2451IssaquahComplete
2747Possibly redundant std::move in [alg.foreach]IssaquahComplete
2748swappable traits for optionalsIssaquahComplete
2749swappable traits for variantsIssaquahComplete
2750[fund.ts.v2] LWG 2451 conversion constructor constraintIssaquahNothing to do
2752"Throws:" clauses of async and packaged_task are unimplementableIssaquah
2755[string.view.io] uses non-existent basic_string_view::to_string functionIssaquahComplete
2756C++ WP optional should 'forward' T's implicit conversionsIssaquahComplete
2758std::string{}.assign("ABCDE", 0, 1) is ambiguousIssaquahComplete
2759gcd / lcm and bool for the WPIssaquahComplete
2760non-const basic_string::data should not invalidate iteratorsIssaquahComplete
2765Did LWG 1123 go too far?IssaquahComplete
2767not_fn call_wrapper can form invalid typesIssaquahComplete
2769Redundant const in the return type of any_cast(const any&)IssaquahComplete
2771Broken Effects of some basic_string::compare functions in terms of basic_string_viewIssaquahComplete
2773Making std::ignore constexprIssaquahComplete
2777basic_string_view::copy should use char_traits::copyIssaquahComplete
2778basic_string_view is missing constexprIssaquahComplete
2260Missing requirement for Allocator::pointerKonaComplete
2676Provide filesystem::path overloads for File-based streamsKonaComplete
2768any_cast and move semanticsKonaComplete
2769Redundant const in the return type of any_cast(const any&)KonaComplete
2781Contradictory requirements for std::function and std::reference_wrapperKonaComplete
2782scoped_allocator_adaptor constructors must be constrainedKonaComplete
2784Resolution to LWG 2484 is missing "otherwise, no effects" and is hard to parseKonaComplete
2785quoted should work with basic_string_viewKonaComplete
2786Annex C should mention shared_ptr changes for array supportKonaComplete
2787§[file_status.cons] doesn't match class definitionKonaComplete
2788basic_string range mutators unintentionally require a default constructible allocatorKonaComplete
2789Equivalence of contained objectsKonaComplete
2790Missing specification of istreambuf_iterator::operator->KonaComplete
2794Missing requirements for allocator pointersKonaNothing to do
2795§[global.functions] provides incorrect example of ADL useKonaComplete
2796tuple should be a literal typeKonaComplete
2801Default-constructibility of unique_ptrKonaComplete
2802shared_ptr constructor requirements for a deleterKona
2804Unconditional constexpr default constructor for istream_iteratorKonaComplete
2806Base class of bad_optional_accessKonaComplete
2807std::invoke should use std::is_nothrow_callableKonaComplete
2812Range access is available with <string_view>KonaComplete
2824list::sort should say that the order of elements is unspecified if an exception is thrownKonaComplete
2826string_view iterators use old wordingKonaComplete
2834Resolution LWG 2223 is missing wording about end iteratorsKonaComplete
2835LWG 2536 seems to misspecify <tgmath.h>KonaComplete
2837gcd and lcm should support a wider range of input valuesKonaComplete
2838is_literal_type specification needs a little cleanupKonaComplete
2842in_place_t check for optional::optional(U&&) should decay UKonaComplete
2850std::function move constructor does unnecessary workKonaComplete
2853Possible inconsistency in specification of erase in [vector.modifiers]KonaComplete
2855std::throw_with_nested("string_literal")KonaComplete
2857{variant,optional,any}::emplace should return the constructed valueKonaComplete
2861basic_string should require that charT match traits::char_typeKonaComplete
2866Incorrect derived classes constraintsKonaNothing to do
2868Missing specification of bad_any_cast::what()KonaComplete
2872Add definition for direct-non-list-initializationKonaComplete
2873Add noexcept to several shared_ptr related functionsKonaComplete
2874Constructor shared_ptr::shared_ptr(Y*) should be constrainedKona
2875shared_ptr::shared_ptr(Y*, D, […]) constructors should be constrainedKona
2876shared_ptr::shared_ptr(const weak_ptr<Y>&) constructor should be constrainedKona
2878Missing DefaultConstructible requirement for istream_iterator default constructorKonaComplete
2890The definition of 'object state' applies only to class typesKonaComplete
2900The copy and move constructors of optional are not constexprKonaComplete
2903The form of initialization for the emplace-constructors is not specifiedKonaComplete
2904Make variant move-assignment more exception safeKonaComplete
2905is_constructible_v<unique_ptr<P, D>, P, D const &> should be false when D is not copy constructibleKonaComplete
2908The less-than operator for shared pointers could do moreKonaComplete
2911An is_aggregate type trait is neededKonaComplete
2921packaged_task and type-erased allocatorsKonaComplete
2934optional<const T> doesn't compare with TKonaComplete
2901Variants cannot properly support allocatorsTorontoComplete
2955to_chars / from_chars depend on std::stringTorontoResolved by P0682R1
2956filesystem::canonical() still defined in terms of absolute(p, base)TorontoComplete
- -

Last Updated: 17-Nov-2020

-
+ If you are not redirected automatically, follow this link to new documentation. diff --git a/libcxx/www/cxx2a_status.html b/libcxx/www/cxx2a_status.html --- a/libcxx/www/cxx2a_status.html +++ b/libcxx/www/cxx2a_status.html @@ -1,586 +1,14 @@ - - - + + - - libc++ C++2a Status - - + + + + libc++ C++20 Status - - - -
- -

libc++ C++2a Status

- - -

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.

- -

Reminder: Features in unreleased drafts of the standard are subject to change.

- -

The groups that have contributed papers: -

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

- -

Paper Status

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Paper #GroupPaper NameMeetingStatusFirst released version
P0463R1LWGEndian just EndianTorontoComplete7.0
P0674R1LWGExtending make_shared to Support ArraysToronto
P0020R6LWGFloating Point AtomicAlbuquerque
P0053R7LWGC++ Synchronized Buffered OstreamAlbuquerque
P0202R3LWGAdd constexpr modifiers to functions in <algorithm> and <utility> HeadersAlbuquerqueIn Progress7.0
P0415R1LWGConstexpr for std::complexAlbuquerqueIn Progress7.0
P0439R0LWGMake std::memory_order a scoped enumerationAlbuquerqueComplete
P0457R2LWGString Prefix and Suffix CheckingAlbuquerqueComplete6.0
P0550R2LWGTransformation Trait remove_cvrefAlbuquerqueComplete6.0
P0600R1LWGnodiscard in the LibraryAlbuquerqueIn Progress7.0
P0616R0LWGde-pessimize legacy algorithms with std::moveAlbuquerque
P0653R2LWGUtility to convert a pointer to a raw pointerAlbuquerqueComplete6.0
P0718R2LWGAtomic shared_ptrAlbuquerque
P0767R1CWGDeprecate PODAlbuquerqueComplete7.0
P0768R1CWGLibrary Support for the Spaceship (Comparison) OperatorAlbuquerqueComplete
P0777R1LWGTreating Unnecessary decayAlbuquerqueComplete7.0
P0122R7LWG<span>JacksonvilleComplete7.0
P0355R7LWGExtending chrono to Calendars and Time ZonesJacksonvilleIn Progress
P0551R3LWGThou Shalt Not Specialize std Function Templates!JacksonvilleComplete11.0
P0753R2LWGManipulators for C++ Synchronized Buffered OstreamJacksonville
P0754R2LWG<version>JacksonvilleComplete7.0
P0809R0LWGComparing Unordered ContainersJacksonville
P0858R0LWGConstexpr iterator requirementsJacksonville
P0905R1CWGSymmetry for spaceshipJacksonville
P0966R1LWGstring::reserve Should Not ShrinkJacksonvilleComplete8.0
P0019R8LWGAtomic RefRapperswil
P0458R2LWGChecking for Existence of an Element in Associative ContainersRapperswilComplete
P0475R1LWGLWG 2511: guaranteed copy elision for piecewise constructionRapperswil
P0476R2LWGBit-casting object representationsRapperswil
P0528R3CWGThe Curious Case of Padding Bits, Featuring Atomic Compare-and-ExchangeRapperswil
P0542R5CWGSupport for contract based programming in C++Rapperswil
P0556R3LWGIntegral power-of-2 operationsRapperswilComplete9.0
P0619R4LWGReviewing Deprecated Facilities of C++17 for C++20RapperswilPartial
(only std::allocator part is implemented)
P0646R1LWGImproving the Return Value of Erase-Like AlgorithmsRapperswilComplete10.0
P0722R3CWGEfficient sized delete for variable sized classesRapperswilComplete9.0
P0758R1LWGImplicit conversion traits and utility functionsRapperswilComplete
P0759R1LWGfpos RequirementsRapperswilComplete11.0
P0769R2LWGAdd shift to <algorithm>Rapperswil
P0788R3LWGStandard Library Specification in a Concepts and Contracts WorldRapperswil
P0879R0LWGConstexpr for swap and swap related functions Also resolves LWG issue 2800.Rapperswil
P0887R1LWGThe identity metafunctionRapperswilComplete8.0
P0892R2CWGexplicit(bool)Rapperswil
P0898R3LWGStandard Library ConceptsRapperswil
P0935R0LWGEradicating unnecessarily explicit default constructors from the standard libraryRapperswil
P0941R2CWGIntegrating feature-test macros into the C++ WDRapperswilIn Progress
P1023R0LWGconstexpr comparison operators for std::arrayRapperswilComplete8.0
P1025R1CWGUpdate The Reference To The Unicode StandardRapperswil
P1120R0CWGConsistency improvements for <=> and other comparison operatorsRapperswil
P0318R1LWGunwrap_ref_decay and unwrap_referenceSan DiegoComplete8.0
P0356R5LWGSimplified partial function applicationSan Diego
P0357R3LWGreference_wrapper for incomplete typesSan DiegoComplete8.0
P0482R6CWGchar8_t: A type for UTF-8 characters and stringsSan DiegoIn Progress
P0487R1LWGFixing operator>>(basic_istream&, CharT*) (LWG 2499)San DiegoComplete8.0
P0591R4LWGUtility functions to implement uses-allocator constructionSan Diego
P0595R2CWGP0595R2 std::is_constant_evaluated()San DiegoComplete9.0
P0602R4LWGvariant and optional should propagate copy/move trivialitySan DiegoComplete8.0
P0608R3LWGA sane variant converting constructorSan DiegoComplete9.0
P0655R1LWGvisit<R>: Explicit Return Type for visitSan Diego
P0771R1LWGstd::function move constructor should be noexceptSan DiegoComplete6.0
P0896R4LWGThe One Ranges ProposalSan Diego
P0899R1LWGP0899R1 - LWG 3016 is not a defectSan DiegoNothing to do
P0919R3LWGHeterogeneous lookup for unordered containersSan DiegoComplete12.0
P0972R0LWG<chrono> zero(), min(), and max() should be noexceptSan DiegoComplete8.0
P1006R1LWGConstexpr in std::pointer_traitsSan DiegoComplete8.0
P1007R3LWGstd::assume_alignedSan Diego
P1020R1LWGSmart pointer creation with default initializationSan Diego
P1032R1LWGMisc constexpr bitsSan Diego
P1085R2LWGShould Span be Regular?San DiegoComplete8.0
P1123R0LWGEditorial Guidance for merging P0019r8 and P0528r3San Diego
P1148R0LWGCleaning up Clause 20San Diego
P1165R1LWGMake stateful allocator propagation more consistent for operator+(basic_string)San Diego
P1209R0LWGAdopt Consistent Container Erasure from Library Fundamentals 2 for C++20San DiegoComplete8.0
P1210R0LWGCompleting the Rebase of Library Fundamentals, Version 3, Working DraftSan Diego
P1236R1CWGAlternative Wording for P0907R4 Signed Integers are Two's ComplementSan Diego
P1248R1LWGRemove CommonReference requirement from StrictWeakOrdering (a.k.a Fixing Relations)San Diego
P1285R0LWGImproving Completeness Requirements for Type TraitsSan Diego
P1353R0CWGMissing feature test macrosSan Diego
P0339R6LWGpolymorphic_allocator<> as a vocabulary typeKona
P0340R3LWGMaking std::underlying_type SFINAE-friendlyKonaComplete9.0
P0738R2LWGI Stream, You Stream, We All Stream for istream_iteratorKona
P0811R3LWGWell-behaved interpolation for numbers and pointersKonaComplete9.0
P0920R2LWGPrecalculated hash values in lookupKonaReverted by P1661
P1001R2LWGTarget Vectorization Policies from Parallelism V2 TS to C++20Kona
P1024R3LWGUsability Enhancements for std::spanKonaComplete9.0
P1164R1LWGMake create_directory() IntuitiveKona
P1227R2LWGSigned ssize() functions, unsigned size() functions KonaComplete9.0
P1252R2LWGRanges Design CleanupKona
P1286R2CWGContra CWG DR1778Kona
P1357R1LWGTraits for [Un]bounded ArraysKonaComplete9.0
P1458R1LWGMandating the Standard Library: Clause 16 - Language support libraryKonaComplete9.0
P1459R1LWGMandating the Standard Library: Clause 18 - Diagnostics libraryKonaComplete9.0
P1462R1LWGMandating the Standard Library: Clause 20 - Strings libraryKonaComplete9.0
P1463R1LWGMandating the Standard Library: Clause 21 - Containers libraryKona
P1464R1LWGMandating the Standard Library: Clause 22 - Iterators libraryKonaComplete9.0
P0325LWGto_array from LFTS with updatesCologneComplete10.0
P0408LWGEfficient Access to basic_stringbuf's BufferCologne
P0466LWGLayout-compatibility and Pointer-interconvertibility TraitsCologne
P0553LWGBit operationsCologneComplete9.0
P0631LWGMath ConstantsCologneComplete11.0
P0645LWGText FormattingCologne
P0660LWGStop Token and Joining Thread, Rev 10Cologne
P0784CWGMore constexpr containersCologneComplete12.0
P0980LWGMaking std::string constexprCologne
P1004LWGMaking std::vector constexprCologne
P1035LWGInput Range AdaptorsCologne
P1065LWGConstexpr INVOKECologne
P1135LWGThe C++20 Synchronization LibraryCologneComplete
P1207LWGMovability of Single-pass IteratorsCologne
P1208LWGAdopt source_location for C++20Cologne
P1355LWGExposing a narrow contract for ceil2CologneComplete9.0
P1361LWGIntegration of chrono with text formattingCologne
P1423LWGchar8_t backward compatibility remediationCologne
P1424LWG'constexpr' feature macro concernsCologne
P1466LWGMiscellaneous minor fixes for chronoCologne
P1474LWGHelpful pointers for ContiguousIteratorCologne
P1502LWGStandard library header units for C++20Cologne
P1522LWGIterator Difference Type and Integer OverflowCologne
P1523LWGViews and Size TypesCologne
P1612LWGRelocate Endian's SpecificationCologneComplete10.0
P1614LWGThe Mothership has LandedCologneIn Progress
P1638LWGbasic_istream_view::iterator should not be copyableCologne
P1643LWGAdd wait/notify to atomic_refCologne
P1644LWGAdd wait/notify to atomicCologne
P1650LWGOutput std::chrono::days with 'd' suffixCologne
P1651LWGbind_front should not unwrap reference_wrapperCologne
P1652LWGPrintf corner cases in std::formatCologne
P1661LWGRemove dedicated precalculated hash lookup interfaceCologneNothing to do
P1754LWGRename concepts to standard_case for C++20, while we still canCologne
P0883LWGFixing Atomic Initialization Belfast
P1391LWGRange constructor for std::string_view Belfast
P1394LWGRange constructor for std::span Belfast
P1456LWGMove-only views Belfast
P1622LWGMandating the Standard Library: Clause 32 - Thread support library Belfast
P1645LWGconstexpr for numeric algorithms Belfast
P1664LWGreconstructible_range - a concept for putting ranges back together Belfast
P1686LWGMandating the Standard Library: Clause 27 - Time library Belfast
P1690LWGRefinement Proposal for P0919 Heterogeneous lookup for unordered containers BelfastComplete12.0
P1716LWGranges compare algorithm are over-constrained Belfast
P1718LWGMandating the Standard Library: Clause 25 - Algorithms library Belfast
P1719LWGMandating the Standard Library: Clause 26 - Numerics library Belfast
P1720LWGMandating the Standard Library: Clause 28 - Localization library Belfast
P1721LWGMandating the Standard Library: Clause 29 - Input/Output library Belfast
P1722LWGMandating the Standard Library: Clause 30 - Regular Expression library Belfast
P1723LWGMandating the Standard Library: Clause 31 - Atomics library Belfast
P1855LWGMake <compare> freestandingBelfast
P1862LWGRanges adaptors for non-copyable iterators Belfast
P1865LWGAdd max() to latch and barrier Belfast
P1869LWGRename 'condition_variable_any' interruptible wait methods Belfast
P1870LWGforwarding-range is too subtle Belfast
P1871LWGShould concepts be enabled or disabled? Belfast
P1872LWGspan should have size_type, not index_type BelfastComplete10.0
P1878LWGConstraining Readable Types Belfast
P1892LWGExtended locale-specific presentation specifiers for std::format Belfast
P1902LWGMissing feature-test macros 2018-2019 Belfast
P1959LWGRemove std::weak_equality and std::strong_equalityBelfast
P1960LWGNB Comment Changes Reviewed by SG1Belfast
P1961LWGHarmonizing the definitions of total order for pointersBelfast
P1965LWGBlanket Wording for Specifying "Hidden Friends"Belfast
P0586LWGSafe integral comparisonsPrague
P0593CWGImplicit creation of objects for low-level object manipulationPrague
P1115LWGImproving the Return Value of Erase-Like Algorithms II: Free erase/erase ifPragueComplete11.0
P1243LWGRangify New AlgorithmsPrague
P1460LWGMandating the Standard Library: Clause 20 - Utilities libraryPrague
P1739LWGAvoid template bloat for safe_ranges in combination with "subrange-y" view adaptorsPrague
P1831LWGDeprecating volatile: libraryPrague
P1868LWGwidth: clarifying units of width and precision in std::formatPrague
P1908CWGReserving Attribute Namespaces for Future UsePrague
P1937CWGFixing inconsistencies between constexpr and consteval functionsPrague
P1956LWGOn the names of low-level bit manipulation functionsPragueComplete12.0
P1957CWGConverting from T* to bool should be considered narrowing (re: US 212)Prague
P1963LWGFixing US 313Prague
P1964LWGWording for boolean-testablePrague
P1970LWGConsistency for size() functions: Add ranges::ssizePrague
P1973LWGRename "_default_init" Functions, Rev1Prague
P1976LWGFixed-size span construction from dynamic rangePragueComplete11.0
P1981LWGRename leap to leap_secondPrague
P1982LWGRename link to time_zone_linkPrague
P1983LWGWording for GB301, US296, US292, US291, and US283Prague
P1994LWGelements_view needs its own sentinelPrague
P2002CWGDefaulted comparison specification cleanupsPrague
P2045LWGMissing Mandates for the standard libraryPrague
P2085CWGConsistent defaulted comparisonsPrague
P2091LWGIssues with range access CPOsPrague
P2101LWG'Models' subsumes 'satisfies' (Wording for US298 and US300)Prague
P2102LWGMake 'implicit expression variations' more explicit (Wording for US185)Prague
P2106LWGAlternative wording for GB315 and GB316Prague
P2116LWGRemove tuple-like protocol support from fixed-extent spanPragueComplete11.0
- -

[ Note: "Nothing to do" means that no library changes were needed to implement this change -- end note]

- -

The missing bits in P0600 are in [mem.res.class], [mem.poly.allocator.class], and [container.node.overview]

- -

The missing bits in P0202 are in copy and copy_backwards (and the ones that call them: copy_n, set_union, set_difference, and set_symmetric_difference). This is because the first two algorithms have specializations that call memmove which is not constexpr. See Bug 25165

- - -

Library Working group Issues Status

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Issue #Issue NameMeetingStatus
2070allocate_shared should use allocator_traits<A>::constructTorontoResolved by P0674R1
2444Inconsistent complexity for std::sort_heapToronto
2593Moved-from state of AllocatorsToronto
2597std::log misspecified for complex numbersToronto
2783stack::emplace() and queue::emplace() should return decltype(auto)TorontoComplete
2932Constraints on parallel algorithm implementations are underspecifiedToronto
2937Is equivalent("existing_thing", "not_existing_thing") an errorTorontoComplete
2940result_of specification also needs a little cleanupToronto
2942LWG 2873's resolution missed weak_ptr::owner_beforeTorontoComplete
2954Specialization of the convenience variable templates should be prohibitedTorontoComplete
2961Bad postcondition for set_default_resourceToronto
2966Incomplete resolution of US 74TorontoNothing to do
2974Diagnose out of bounds tuple_element/variant_alternativeTorontoComplete
2779[networking.ts] Relax requirements on buffer sequence iteratorsAlbuquerque
2870Default value of parameter theta of polar should be dependentAlbuquerqueComplete
2935What should create_directories do when p already exists but is not a directory?Albuquerque
2941[thread.req.timing] wording should apply to both member and namespace-level functionsAlbuquerqueNothing to do
2944LWG 2905 accidentally removed requirement that construction of the deleter doesn't throw an exceptionAlbuquerqueNothing to do
2945Order of template parameters in optional comparisonsAlbuquerqueComplete
2948unique_ptr does not define operator<< for stream outputAlbuquerqueComplete
2950std::byte operations are misspecifiedAlbuquerqueComplete
2952iterator_traits should work for pointers to cv TAlbuquerqueComplete
2953LWG 2853 should apply to deque::erase tooAlbuquerqueComplete
2958Moves improperly defined as deletedAlbuquerqueWe already do this
2964Apparently redundant requirement for dynamic_pointer_castAlbuquerque
2965Non-existing path::native_string() in filesystem_error::what() specificationAlbuquerqueNothing to do
2972What is is_trivially_destructible_v<int>?AlbuquerqueComplete
2976Dangling uses_allocator specialization for packaged_taskAlbuquerqueComplete
2977unordered_meow::merge() has incorrect Throws: clauseAlbuquerqueNothing to do
2978Hash support for pmr::string and friendsAlbuquerque
2979aligned_union should require complete object typesAlbuquerqueComplete
2980Cannot compare_exchange empty pointersAlbuquerque
2981Remove redundant deduction guides from standard libraryAlbuquerque
2982Making size_type consistent in associative container deduction guidesAlbuquerque
2988Clause 32 cleanup missed one typenameAlbuquerque
2993reference_wrapper conversion from T&&Albuquerque
2998Requirements on function objects passed to {forward_,}list-specific algorithmsAlbuquerqueNothing to do
3001weak_ptr::element_type needs remove_extent_tAlbuquerque
3024variant's copies must be deleted instead of disabled via SFINAEAlbuquerqueComplete
2164What are the semantics of vector.emplace(vector.begin(), vector.back())?JacksonvilleComplete
2243istream::putback problemJacksonvilleComplete
2816resize_file has impossible postconditionJacksonvilleNothing to do
2843Unclear behavior of std::pmr::memory_resource::do_allocate()JacksonvilleComplete
2849Why does !is_regular_file(from) cause copy_file to report a "file already exists" error?JacksonvilleNothing to do
2851std::filesystem enum classes are now underspecifiedJacksonvilleNothing to do
2946LWG 2758's resolution missed further correctionsJacksonvilleComplete
2969polymorphic_allocator::construct() shouldn't pass resource()JacksonvilleComplete
2975Missing case for pair construction in scoped and polymorphic allocatorsJacksonville
2989path's stream insertion operator lets you insert everything under the sunJacksonvilleCompleted
3000monotonic_memory_resource::do_is_equal uses dynamic_cast unnecessarilyJacksonville
3002[networking.ts] basic_socket_acceptor::is_open() isn't noexceptJacksonville
3004§[string.capacity] and §[vector.capacity] should specify time complexity for capacity()JacksonvilleNothing to do
3005Destruction order of arrays by make_shared/allocate_shared only recommended?Jacksonville
3007allocate_shared should rebind allocator to cv-unqualified value_type for constructionJacksonville
3009Including <string_view> doesn't provide std::size/empty/dataJacksonvilleComplete
3010[networking.ts] uses_executor says "if a type T::executor_type exists"Jacksonville
3013(recursive_)directory_iterator construction and traversal should not be noexceptJacksonvilleComplete
3014More noexcept issues with filesystem operationsJacksonvilleComplete
3015copy_options::unspecified underspecifiedJacksonvilleNothing to do
3017list splice functions should use addressofJacksonvilleComplete
3020[networking.ts] Remove spurious nested value_type buffer sequence requirementJacksonville
3026filesystem::weakly_canonical still defined in terms of canonical(p, base)JacksonvilleComplete
3030Who shall meet the requirements of try_lock?JacksonvilleNothing to do
3034P0767R1 breaks previously-standard-layout typesJacksonvilleComplete
3035std::allocator's constructors should be constexprJacksonvilleComplete
3039Unnecessary decay in thread and packaged_taskJacksonvilleComplete
3041Unnecessary decay in reference_wrapperJacksonvilleComplete
3042is_literal_type_v should be inlineJacksonvilleComplete
3043Bogus postcondition for filesystem_error constructorJacksonvilleComplete
3045atomic<floating-point> doesn't have value_type or difference_typeJacksonville
3048transform_reduce(exec, first1, last1, first2, init) discards execution policyJacksonville
3051Floating point classifications were inadvertently changed in P0175JacksonvilleNothing to do
3075basic_string needs deduction guides from basic_string_viewJacksonvilleComplete
2139What is a user-defined type?Rapperswil
2970Return type of std::visit misspecifiedRapperswil
3058Parallel adjacent_difference shouldn't require creating temporariesRapperswil
3062Unnecessary decay_t in is_execution_policy_v should be remove_cvref_tRapperswil
3067recursive_directory_iterator::pop must invalidateRapperswilNothing to do
3071[networking.ts] read_until still refers to "input sequence"RapperswilNothing to do
3074Non-member functions for valarray should only deduce from the valarrayRapperswil
3076basic_string CTAD ambiguityRapperswilComplete
3079LWG 2935 forgot to fix the existing_p overloads of create_directoryRapperswil
3080Floating point from_chars pattern specification breaks round-trippingRapperswil
3083What should ios::iword(-1) do?RapperswilNothing to do
3094[time.duration.io]p4 makes surprising claims about encodingRapperswil
3100Unnecessary and confusing "empty span" wordingRapperswilNothing to do
3102Clarify span iterator and const_iterator behaviorRapperswilComplete
3104Fixing duration divisionRapperswilComplete
2183Muddled allocator requirements for match_results constructorsSan DiegoComplete
2184Muddled allocator requirements for match_results assignmentsSan DiegoComplete
2412promise::set_value() and promise::get_future() should not raceSan Diego
2499operator>>(basic_istream&, CharT*) makes it hard to avoid buffer overflowsSan DiegoResolved by P0487R1
2682filesystem::copy() won't create a symlink to a directorySan DiegoNothing to do
2697[concurr.ts] Behavior of future/shared_future unwrapping constructor when given an invalid futureSan Diego
2797Trait precondition violationsSan DiegoResolved by 1285R0
2936Path comparison is defined in terms of the generic formatSan DiegoComplete
2943Problematic specification of the wide version of basic_filebuf::openSan DiegoNothing to do
2960[fund.ts.v3] nonesuch is insufficiently uselessSan DiegoComplete
2995basic_stringbuf default constructor forbids it from using SSO capacitySan Diego
2996Missing rvalue overloads for shared_ptr operationsSan Diego
3008make_shared (sub)object destruction semantics are not specifiedSan Diego
3022is_convertible<derived*, base*> may lead to ODRSan DiegoResolved by 1285R0
3025Map-like container deduction guides should use pair<Key, T>, not pair<const Key, T>San DiegoComplete
3031Algorithms and predicates with non-const reference argumentsSan Diego
3037polymorphic_allocator and incomplete typesSan Diego
3038polymorphic_allocator::allocate should not allow integer overflow to create vulnerabilitiesSan Diego
3054uninitialized_copy appears to not be able to meet its exception-safety guaranteeSan Diego
3065LWG 2989 missed that all path's other operators should be hidden friends as wellSan DiegoComplete
3096path::lexically_relative is confused by trailing slashesSan DiegoComplete
3116OUTERMOST_ALLOC_TRAITS needs remove_reference_tSan Diego
3122__cpp_lib_chrono_udls was accidentally droppedSan DiegoComplete
3127basic_osyncstream::rdbuf needs a const_castSan Diego
3128strstream::rdbuf needs a const_castSan DiegoNothing to do
3129regex_token_iterator constructor uses wrong pointer arithmeticSan Diego
3130§[input.output] needs many addressofSan Diego
3131addressof all the thingsSan Diego
3132Library needs to ban macros named expects or ensuresSan DiegoNothing to do
3134[fund.ts.v3] LFTSv3 contains extraneous [meta] variable templates that should have been deleted by P09961San DiegoResolved by P1210R0
3137Header for __cpp_lib_to_charsSan DiegoComplete
3145file_clock breaks ABI for C++17 implementationsSan DiegoComplete
3147Definitions of "likely" and "unlikely" are likely to cause problemsSan Diego
3148<concepts> should be freestandingSan Diego
3153Common and common_type have too little in commonSan Diego
3154Common and CommonReference have a common defectSan Diego
3012atomic<T> is unimplementable for non-is_trivially_copy_constructible TKona
3040basic_string_view::starts_with Effects are incorrectKonaComplete
3077(push|emplace)_back should invalidate the end iteratorKonaNothing to do
3087One final &x in §[list.ops]KonaNothing to do
3101span's Container constructors need another constraintKonaComplete
3112system_error and filesystem_error constructors taking a string may not be able to meet their postconditionsKona
3119Program-definedness of closure typesKonaNothing to do
3133Modernizing numeric type requirementsKona
3144span does not have a const_pointer typedefKonaComplete
3173Enable CTAD for ref-viewKona
3179subrange should always model RangeKona
3180Inconsistently named return type for ranges::minmax_elementKona
3182Specification of Same could be clearerKona
2899is_(nothrow_)move_constructible and tuple, optional and unique_ptrCologne
3055path::operator+=(single-character) misspecifiedCologne
3158tuple(allocator_arg_t, const Alloc&) should be conditionally explicitCologne
3169ranges permutation generators discard useful informationCologne
3183Normative permission to specialize Ranges variable templatesCologne
3184Inconsistencies in bind_front wordingCologne
3185Uses-allocator construction functions missing constexpr and noexceptCologne
3186ranges removal, partition, and partial_sort_copy algorithms discard useful informationCologne
3187P0591R4 reverted DR 2586 fixes to scoped_allocator_adaptor::construct()Cologne
3191std::ranges::shuffle synopsis does not match algorithm definitionCologne
3196std::optional<T> is ill-formed is T is an arrayCologneComplete
3198Bad constraint on std::span::span()CologneComplete
3199istream >> bitset<0> failsCologne
3202P0318R1 was supposed to be revisedCologneComplete
3206year_month_day conversion to sys_days uses not-existing member functionCologneComplete
3208Boolean's expression requirements are ordered inconsistentlyCologneNothing to do
3209Expression in year::ok() returns clause is ill-formedCologneComplete
3231year_month_day_last::day specification does not cover !ok() valuesBelfastNothing to do
3225zoned_time converting constructor shall not be noexceptBelfast
3190std::allocator::allocate sometimes returns too little storageBelfast
3218Modifier for %d parse flag does not match POSIX and format specificationBelfast
3224zoned_time constructor from TimeZonePtr does not specify initialization of tp_Belfast
3230Format specifier %y/%Y is missing locale alternative versionsBelfast
3232Inconsistency in zoned_time deduction guidesBelfast
3222P0574R1 introduced preconditions on non-existent parametersBelfast
3221Result of year_month arithmetic with months is ambiguousBelfast
3235parse manipulator without abbreviation is not callableBelfast
3246What are the constraints on the template parameter of basic_format_arg?Belfast
3253basic_syncbuf::basic_syncbuf() should not be explicitBelfast
3245Unnecessary restriction on '%p' parse specifierBelfast
3244Constraints for Source in §[fs.path.req] insufficiently constraintyBelfast
3241chrono-spec grammar ambiguity in §[time.format]Belfast
3257Missing feature testing macro update from P0858Belfast
3256Feature testing macro for constexpr algorithmsBelfast
3273Specify weekday_indexed to range of [0, 7]Belfast
3070path::lexically_relative causes surprising results if a filename can also be a root-nameBelfast
3266to_chars(bool) should be deletedBelfast
3272%I%p should parse/format duration since midnightBelfast
3259The definition of constexpr iterators should be adjustedBelfast
3103Errors in taking subview of span should be ill-formed where possibleBelfast
3274Missing feature test macro for <span>Belfast
3276Class split_view::outer_iterator::value_type should inherit from view_interfaceBelfast
3277Pre-increment on prvalues is not a requirement of weakly_incrementableBelfast
3149DefaultConstructible should require default initializationBelfast
1203More useful rvalue stream insertionPrague12.0
2859Definition of reachable in [ptr.launder] misses pointer arithmetic from pointer-interconvertible objectPrague
3018shared_ptr of function typePrague
3050Conversion specification problem in chrono::duration constructorPrague
3141CopyConstructible doesn't preserve source valuesPrague
3150UniformRandomBitGenerator should validate min and maxPrague
3175The CommonReference requirement of concept SwappableWith is not satisfied in the examplePrague
3194ConvertibleTo prose does not match codePrague
3200midpoint should not constrain T is completePrague
3201lerp should be marked as noexceptPragueComplete
3226zoned_time constructor from string_view should accept zoned_time<Duration2, TimeZonePtr2>Prague
3233Broken requirements for shared_ptr converting constructorsPrague
3237LWG 3038 and 3190 have inconsistent PRsPrague
3238Insufficiently-defined behavior of std::function deduction guidesPrague
3242std::format: missing rules for arg-id in width and precisionPrague
3243std::format and negative zeroesPrague
3247ranges::iter_move should perform ADL-only lookup of iter_movePrague
3248std::format #b, #B, #o, #x, and #X presentation types misformat negative numbersPrague
3250std::format: # (alternate form) for NaN and infPrague
3251Are std::format alignment specifiers applied to string arguments?Prague
3252Parse locale's aware modifiers for commands are not consistent with POSIX specPrague
3254Strike stop_token's operator!=Prague
3255span's array constructor is too strictPragueComplete
3260year_month* arithmetic rejects durations convertible to yearsPrague
3262Formatting of negative durations is not specifiedPrague
3264sized_range and ranges::size redundantly use disable_sized_rangePrague
3269Parse manipulators do not specify the result of the extraction from streamPrague
3270Parsing and formatting %j with durationsPrague
3280View converting constructors can cause constraint recursion and are unneededPrague
3281Conversion from pair-like types to subrange is a silent semantic promotionPrague
3282subrange converting constructor should disallow derived to base conversionsPrague
3284random_access_iterator semantic constraints accidentally promote difference type using unary negatePrague
3285The type of a customization point object shall satisfy semiregularPrague
3286ranges::size is not required to be valid after a call to ranges::begin on an input rangePrague
3291iota_view::iterator has the wrong iterator_categoryPrague
3292iota_view is under-constrainedPrague
3294zoned_time deduction guides misinterprets string/char*Prague
3296Inconsistent default argument for basic_regex<>::assignPrague
3299Pointers don't need customized iterator behaviorPrague
3300Non-array ssize overload is underconstrainedPrague
3301transform_view::iterator has incorrect iterator_categoryPrague
3302Range adaptor objects keys and values are unspecifiedPrague
3303Bad "constexpr" marker for destroy/destroy_nPrague
3304Allocate functions of std::polymorphic_allocator should require [[nodiscard]]Prague
3307std::allocator<void>().allocate(n)Prague
3310Replace SIZE_MAX with numeric_limits<size_t>::max()Prague
3313join_view::iterator::operator-- is incorrectly constrainedPrague
3314Is stream insertion behavior locale dependent when Period::type is micro?Prague
3315Correct Allocator Default BehaviorPrague
3316Correctly define epoch for utc_clock / utc_timepointPrague
3317Incorrect operator<< for floating-point durationsPrague
3318Clarify whether clocks can represent time before their epochPrague
3319Properly reference specification of IANA time zone databasePrague
3320span::cbegin/cend methods produce different results than std::[ranges::]cbegin/cendPragueComplete
3321uninitialized_construct_using_allocator should use construct_atPrague
3323has-tuple-element helper concept needs convertible_toPrague
3324Special-case std::strong/weak/partial_order for pointersPrague
3325Constrain return type of transformation function for transform_viewPrague
3326enable_view has false positivesPrague
3327Format alignment specifiers vs. text directionPrague
3328Clarify that std::string is not good for UTF-8Prague
3329totally_ordered_with both directly and indirectly requires common_reference_withPrague
3330Include <compare> from most library headersPrague
3331Define totally_ordered/_with in terms of partially-ordered-withPrague
3332Issue in §[time.format]Prague
3334basic_osyncstream move assignment and destruction calls basic_syncbuf::emit() twicePrague
3335Resolve C++20 NB comments US 273 and GB 274Prague
3338Rename default_constructible to default_initializablePrague
3340Formatting functions should throw on argument/format string mismatch in §[format.functions]Prague
3346pair and tuple copy and move constructor have backwards specificationPrague
3347std::pair<T, U> now requires T and U to be less-than-comparablePrague
3348__cpp_lib_unwrap_ref in wrong headerPrague
3349Missing __cpp_lib_constexpr_complex for P0415R1Prague
3350Simplify return type of lexicographical_compare_three_wayPrague
3351ranges::enable_safe_range should not be constrainedPrague
3352strong_equality isn't a thingPrague
3354has_strong_structural_equality has a meaningless definitionPrague
3355The memory algorithms should support move-only input iterators introduced by P1207Prague
3356__cpp_lib_nothrow_convertible should be __cpp_lib_is_nothrow_convertiblePrague
3358§[span.cons] is mistaken that to_address can throwPrague
3359<chrono> leap second support should allow for negative leap secondsPrague
3360three_way_comparable_with is inconsistent with similar conceptsPrague
3362Strike stop_source's operator!=Prague
3363drop_while_view should opt-out of sized_rangePrague
3364Initialize data members of ranges and their iteratorsPrague
3367Integer-class conversions should not throwPrague
3369span's deduction-guide for built-in arrays doesn't workPrague
3371visit_format_arg and make_format_args are not hidden friendsPrague
3372vformat_to should not try to deduce Out twicePrague
3373{to,from}_chars_result and format_to_n_result need the "we really mean what we say" wordingPrague
3374P0653 + P1006 should have made the other std::to_address overload constexprPrague
3375decay in viewable_range should be remove_cvrefPrague
3377elements_view::iterator befriends a specialization of itselfPrague
3379"safe" in several library names is misleadingPrague
3380common_type and comparison categoriesPrague
3381begin and data must agree for contiguous_rangePrague
3382NTTP for pair and arrayPrague
3383§[time.zone.leap.nonmembers] sys_seconds should be replaced with secondsPrague
3384transform_view::sentinel has an incorrect operator-Prague
3385common_iterator is not sufficiently constrained for non-copyable iteratorsPrague
3387§[range.reverse.view] reverse_view<V> unintentionally requires range<const V>Prague
3388view iterator types have ill-formed <=> operatorsPrague
3389A move-only iterator still does not have a counted_iteratorPrague
3390make_move_iterator() cannot be used to construct a move_iterator for a move-only iteratorPrague
3393Missing/incorrect feature test macro for coroutinesPrague
3395Definition for three-way comparison needs to be updated (US 152)Prague
3396Clarify point of reference for source_location::current() (DE 169)Prague
3397ranges::basic_istream_view::iterator should not provide iterator_categoryPrague
3398tuple_element_t is also wrong for const subrangePrague
- -

Last Updated: 16-Feb-2020

-
+ If you are not redirected automatically, follow this link to new documentation.