Files
clang-p2996/libcxx/docs/Status/Cxx17Papers.csv
Konstantin Varlamov 68072a7166 [libc++] P0433R2: test that deduction guides are properly SFINAEd away.
Deduction guides for containers should not participate in overload
resolution when called with certain incorrect types (e.g. when called
with a template argument in place of an `InputIterator` that doesn't
qualify as an input iterator). Similarly, class template argument
deduction should not select `unique_ptr` constructors that take a
a pointer.

The tests try out every possible incorrect parameter (but never more
than one incorrect parameter in the same invocation).

Also add deduction guides to the synopsis for associative and unordered
containers (this was accidentally omitted from [D112510](https://reviews.llvm.org/D112510)).

Differential Revision: https://reviews.llvm.org/D112904
2021-11-09 09:32:24 -08:00

13 KiB

1Paper #GroupPaper NameMeetingStatusFirst released version
2`N3911 <https://wg21.link/n3911>`__LWGTransformationTrait Alias ``void_t``\ .Urbana|Complete|3.6
3`N4089 <https://wg21.link/n4089>`__LWGSafe conversions in ``unique_ptr<T[]>``\ .Urbana|In Progress|3.9
4`N4169 <https://wg21.link/n4169>`__LWGA proposal to add invoke function templateUrbana|Complete|3.7
5`N4190 <https://wg21.link/n4190>`__LWGRemoving auto_ptr, random_shuffle(), And Old <functional> Stuff.Urbana|In Progress|
6`N4258 <https://wg21.link/n4258>`__LWGCleaning-up noexcept in the Library.Urbana|In Progress|3.7
7`N4259 <https://wg21.link/n4259>`__CWGWording for std::uncaught_exceptionsUrbana|Complete|3.7
8`N4277 <https://wg21.link/n4277>`__LWGTriviallyCopyable ``reference_wrapper``\ .Urbana|Complete|3.2
9`N4279 <https://wg21.link/n4279>`__LWGImproved insertion interface for unique-key maps.Urbana|Complete|3.7
10`N4280 <https://wg21.link/n4280>`__LWGNon-member size() and moreUrbana|Complete|3.6
11`N4284 <https://wg21.link/n4284>`__LWGContiguous Iterators.Urbana|Complete|3.6
12`N4285 <https://wg21.link/n4285>`__CWGCleanup for exception-specification and throw-expression.Urbana|Complete|4.0
13
14`N4387 <https://wg21.link/n4387>`__LWGimproving pair and tupleLenexa|Complete|4.0
15`N4389 <https://wg21.link/n4389>`__LWGbool_constantLenexa|Complete|3.7
16`N4508 <https://wg21.link/n4508>`__LWGshared_mutex for C++17Lenexa|Complete|3.7
17`N4366 <https://wg21.link/n4366>`__LWGLWG 2228 missing SFINAE ruleLenexa|Complete|3.1
18`N4510 <https://wg21.link/n4510>`__LWGMinimal incomplete type support for standard containers, revision 4Lenexa|Complete|3.6
19
20`P0004R1 <https://wg21.link/p0004r1>`__LWGRemove Deprecated iostreams aliases.Kona|Complete|3.8
21`P0006R0 <https://wg21.link/p0006r0>`__LWGAdopt Type Traits Variable Templates for C++17.Kona|Complete|3.8
22`P0092R1 <https://wg21.link/p0092r1>`__LWGPolishing <chrono>Kona|Complete|3.8
23`P0007R1 <https://wg21.link/p0007r1>`__LWGConstant View: A proposal for a ``std::as_const``\ helper function template.Kona|Complete|3.8
24`P0156R0 <https://wg21.link/p0156r0>`__LWGVariadic lock_guard(rev 3).Kona*Reverted in Kona*3.9
25`P0074R0 <https://wg21.link/p0074r0>`__LWGMaking ``std::owner_less``\ more flexibleKona|Complete|3.8
26`P0013R1 <https://wg21.link/p0013r1>`__LWGLogical type traits rev 2Kona|Complete|3.8
27
28`P0024R2 <https://wg21.link/P0024R2>`__LWGThe Parallelism TS Should be StandardizedJacksonville
29`P0226R1 <https://wg21.link/P0226R1>`__LWGMathematical Special Functions for C++17Jacksonville
30`P0220R1 <https://wg21.link/P0220R1>`__LWGAdopt Library Fundamentals V1 TS Components for C++17Jacksonville|In Progress|
31`P0218R1 <https://wg21.link/P0218R1>`__LWGAdopt the File System TS for C++17Jacksonville|Complete|7.0
32`P0033R1 <https://wg21.link/P0033R1>`__LWGRe-enabling shared_from_thisJacksonville|Complete|3.9
33`P0005R4 <https://wg21.link/P0005R4>`__LWGAdopt not_fn from Library Fundamentals 2 for C++17Jacksonville|Complete|3.9
34`P0152R1 <https://wg21.link/P0152R1>`__LWGconstexpr ``atomic::is_always_lock_free``\ Jacksonville|Complete|3.9
35`P0185R1 <https://wg21.link/P0185R1>`__LWGAdding [nothrow-]swappable traitsJacksonville|Complete|3.9
36`P0253R1 <https://wg21.link/P0253R1>`__LWGFixing a design mistake in the searchers interfaceJacksonville|Complete|3.9
37`P0025R0 <https://wg21.link/P0025R0>`__LWGAn algorithm to "clamp" a value between a pair of boundary valuesJacksonville|Complete|3.9
38`P0154R1 <https://wg21.link/P0154R1>`__LWGconstexpr std::hardware_{constructive,destructive}_interference_sizeJacksonville
39`P0030R1 <https://wg21.link/P0030R1>`__LWGProposal to Introduce a 3-Argument Overload to std::hypotJacksonville|Complete|3.9
40`P0031R0 <https://wg21.link/P0031R0>`__LWGA Proposal to Add Constexpr Modifiers to reverse_iterator, move_iterator, array and Range AccessJacksonville|Complete|4.0
41`P0272R1 <https://wg21.link/P0272R1>`__LWGGive ``std::string``\ a non-const ``.data()``\ member functionJacksonville|Complete|3.9
42`P0077R2 <https://wg21.link/P0077R2>`__LWG``is_callable``\ , the missing INVOKE related traitJacksonville|Complete|3.9
43
44`p0032r3 <https://wg21.link/p0032r3>`__LWGHomogeneous interface for variant, any and optionalOulu|Complete|4.0
45`p0040r3 <https://wg21.link/p0040r3>`__LWGExtending memory management toolsOulu|Complete|4.0
46`p0063r3 <https://wg21.link/p0063r3>`__LWGC++17 should refer to C11 instead of C99Oulu|Complete|7.0
47`p0067r3 <https://wg21.link/p0067r3>`__LWGElementary string conversionsOuluNow `P0067R5 <https://wg21.link/P0067R5>`__n/a
48`p0083r3 <https://wg21.link/p0083r3>`__LWGSplicing Maps and SetsOulu|Complete|8.0
49`p0084r2 <https://wg21.link/p0084r2>`__LWGEmplace Return TypeOulu|Complete|4.0
50`p0088r3 <https://wg21.link/p0088r3>`__LWGVariant: a type-safe union for C++17Oulu|Complete|4.0
51`p0137r1 <https://wg21.link/p0137r1>`__CWGCore Issue 1776: Replacement of class objects containing reference membersOulu|Complete|6.0
52`p0163r0 <https://wg21.link/p0163r0>`__LWGshared_ptr::weak_typeOulu|Complete|3.9
53`p0174r2 <https://wg21.link/p0174r2>`__LWGDeprecating Vestigial Library Parts in C++17Oulu|Partial|
54`p0175r1 <https://wg21.link/p0175r1>`__LWGSynopses for the C libraryOulu
55`p0180r2 <https://wg21.link/p0180r2>`__LWGReserve a New Library Namespace for Future StandardizationOulu|Nothing To Do|n/a
56`p0181r1 <https://wg21.link/p0181r1>`__LWGOrdered by DefaultOulu*Removed in Kona*n/a
57`p0209r2 <https://wg21.link/p0209r2>`__LWGmake_from_tuple: apply for constructionOulu|Complete|3.9
58`p0219r1 <https://wg21.link/p0219r1>`__LWGRelative Paths for FilesystemOulu|Complete|7.0
59`p0254r2 <https://wg21.link/p0254r2>`__LWGIntegrating std::string_view and std::stringOulu|Complete|4.0
60`p0258r2 <https://wg21.link/p0258r2>`__LWGhas_unique_object_representationsOulu|Complete|6.0
61`p0295r0 <https://wg21.link/p0295r0>`__LWGAdopt Selected Library Fundamentals V2 Components for C++17Oulu|Complete|4.0
62`p0302r1 <https://wg21.link/p0302r1>`__LWGRemoving Allocator Support in std::functionOulu|Complete|4.0
63`p0307r2 <https://wg21.link/p0307r2>`__LWGMaking Optional Greater Equal AgainOulu|Complete|4.0
64`p0336r1 <https://wg21.link/p0336r1>`__LWGBetter Names for Parallel Execution Policies in C++17Oulu
65`p0337r0 <https://wg21.link/p0337r0>`__LWGDelete ``operator=``\ for polymorphic_allocatorOulu|Complete|3.9
66`p0346r1 <https://wg21.link/p0346r1>`__LWGA <random> Nomenclature TweakOulu|Complete|3.9
67`p0358r1 <https://wg21.link/p0358r1>`__LWGFixes for not_fnOulu|Complete|3.9
68`p0371r1 <https://wg21.link/p0371r1>`__LWGTemporarily discourage memory_order_consumeOulu|Nothing To Do|n/a
69`p0392r0 <https://wg21.link/p0392r0>`__LWGAdapting string_view by filesystem pathsOulu|Complete|4.0
70`p0393r3 <https://wg21.link/p0393r3>`__LWGMaking Variant Greater EqualOulu|Complete|4.0
71`P0394r4 <https://wg21.link/P0394r4>`__LWGHotel Parallelifornia: terminate() for Parallel Algorithms Exception HandlingOulu
72
73`P0003R5 <https://wg21.link/P0003R5>`__LWGRemoving Deprecated Exception Specifications from C++17Issaquah|Complete|5.0
74`P0067R5 <https://wg21.link/P0067R5>`__LWGElementary string conversions, revision 5Issaquah|Partial|
75`P0403R1 <https://wg21.link/P0403R1>`__LWGLiteral suffixes for ``basic_string_view``\ Issaquah|Complete|4.0
76`P0414R2 <https://wg21.link/P0414R2>`__LWGMerging shared_ptr changes from Library Fundamentals to C++17Issaquah|Complete|11.0
77`P0418R2 <https://wg21.link/P0418R2>`__LWGFail or succeed: there is no atomic latticeIssaquah
78`P0426R1 <https://wg21.link/P0426R1>`__LWGConstexpr for ``std::char_traits``\ Issaquah|Complete|4.0
79`P0435R1 <https://wg21.link/P0435R1>`__LWGResolving LWG Issues re ``common_type``\ Issaquah|Complete|4.0
80`P0502R0 <https://wg21.link/P0502R0>`__LWGThrowing out of a parallel algorithm terminates - but how?Issaquah
81`P0503R0 <https://wg21.link/P0503R0>`__LWGCorrecting library usage of "literal type"Issaquah|Complete|4.0
82`P0504R0 <https://wg21.link/P0504R0>`__LWGRevisiting in-place tag types for any/optional/variantIssaquah|Complete|4.0
83`P0505R0 <https://wg21.link/P0505R0>`__LWGWording for GB 50 - constexpr for chronoIssaquah|Complete|4.0
84`P0508R0 <https://wg21.link/P0508R0>`__LWGWording for GB 58 - structured bindings for node_handlesIssaquah
85`P0509R1 <https://wg21.link/P0509R1>`__LWGUpdating "Restrictions on exception handling"Issaquah|Nothing To Do|n/a
86`P0510R0 <https://wg21.link/P0510R0>`__LWGDisallowing references, incomplete types, arrays, and empty variantsIssaquah|Complete|4.0
87`P0513R0 <https://wg21.link/P0513R0>`__LWGPoisoning the HashIssaquah|Complete|5.0
88`P0516R0 <https://wg21.link/P0516R0>`__LWGClarify That shared_future's Copy Operations have Wide ContractsIssaquah|Complete|4.0
89`P0517R0 <https://wg21.link/P0517R0>`__LWGMake future_error ConstructibleIssaquah|Complete|4.0
90`P0521R0 <https://wg21.link/P0521R0>`__LWGProposed Resolution for CA 14 (shared_ptr use_count/unique)Issaquah|Nothing To Do|n/a
91
92`P0156R2 <https://wg21.link/P0156R2>`__LWGVariadic Lock guard(rev 5)Kona|Complete|5.0
93`P0270R3 <https://wg21.link/P0270R3>`__CWGRemoving C dependencies from signal handler wordingKona
94`P0298R3 <https://wg21.link/P0298R3>`__CWGA byte type definitionKona|Complete|5.0
95`P0317R1 <https://wg21.link/P0317R1>`__LWGDirectory Entry Caching for FilesystemKona|Complete|7.0
96`P0430R2 <https://wg21.link/P0430R2>`__LWGFile system library on non-POSIX-like operating systemsKona|Complete|7.0
97`P0433R2 <https://wg21.link/P0433R2>`__LWGToward a resolution of US7 and US14: Integrating template deduction for class templates into the standard libraryKona|Complete|14.0
98`P0452R1 <https://wg21.link/P0452R1>`__LWGUnifying <numeric> Parallel AlgorithmsKona
99`P0467R2 <https://wg21.link/P0467R2>`__LWGIterator Concerns for Parallel AlgorithmsKona
100`P0492R2 <https://wg21.link/P0492R2>`__LWGProposed Resolution of C++17 National Body Comments for FilesystemsKona|Complete|7.0
101`P0518R1 <https://wg21.link/P0518R1>`__LWGAllowing copies as arguments to function objects given to parallel algorithms in response to CH11Kona
102`P0523R1 <https://wg21.link/P0523R1>`__LWGWording for CH 10: Complexity of parallel algorithmsKona
103`P0548R1 <https://wg21.link/P0548R1>`__LWGcommon_type and durationKona|Complete|5.0
104`P0558R1 <https://wg21.link/P0558R1>`__LWGResolving atomic<T> named base class inconsistenciesKona|Complete|
105`P0574R1 <https://wg21.link/P0574R1>`__LWGAlgorithm Complexity Constraints and Parallel OverloadsKona
106`P0599R1 <https://wg21.link/P0599R1>`__LWGnoexcept for hash functionsKona|Complete|5.0
107`P0604R0 <https://wg21.link/P0604R0>`__LWGResolving GB 55, US 84, US 85, US 86Kona|Complete|
108`P0607R0 <https://wg21.link/P0607R0>`__LWGInline Variables for the Standard LibraryKona|In Progress| [#note-P0607]_6.0
109`P0618R0 <https://wg21.link/P0618R0>`__LWGDeprecating <codecvt>Kona
110`P0623R0 <https://wg21.link/P0623R0>`__LWGFinal C++17 Parallel Algorithms FixesKona
111
112`P0682R1 <https://wg21.link/P0682R1>`__LWGRepairing elementary string conversionsToronto
113`P0739R0 <https://wg21.link/P0739R0>`__LWGSome improvements to class template argument deduction integration into the standard libraryToronto|Complete|5.0