@@ -31,11 +31,74 @@ lookup (i.e. unqualified lookup plus ADL) or just ADL, as was done for
31
31
Set priority to 3 after reflector poll.
32
32
</p >
33
33
34
+ <note >2024-12-02; Jonathan provides wording</note >
35
+ <p >
36
+ I suggest that `from_stream` should only be found via ADL,
37
+ not unqualified lookup. This is consistent with what we did for
38
+ `make_error_code` and `make_error_condition`, and more recently for
39
+ `submdspan_mapping`. I see no reason to treat `from_stream` differently.
40
+ This implies that implementations might need a poison poll in `std::chrono`
41
+ so that unqualified lookup stops as soon as those are found.
42
+ </p >
43
+
34
44
</discussion >
35
45
36
46
<resolution >
37
47
<p >
48
+ This wording is relative to <paper num =" N4993" />.
49
+ </p >
50
+
51
+ <ol >
52
+ <li ><p >Modify <sref ref =" [contents]" /> as indicated:</p >
53
+
54
+ <blockquote >
55
+ <p >
56
+ -3-
57
+ Whenever an unqualified name other than
58
+ `swap`, `make_error_code`, `make_error_condition`,
59
+ <ins >`from_stream`,</ins >
60
+ or `submdspan_mapping`
61
+ is used in the specification of a declaration `D`
62
+ in Clause 17 through Clause 33 or Annex D,
63
+ its meaning is established as-if by performing unqualified name lookup
64
+ (<sref ref =" [basic.lookup.unqual]" />)
65
+ in the context of `D`.
66
+ </p >
67
+ <p >
68
+ [<i >Note 1</i >:
69
+ Argument-dependent lookup is not performed. — <i >end note</i >]
38
70
</p >
71
+ <p >
72
+ Similarly, the meaning of a <i >qualified-id</i > is established as-if
73
+ by performing qualified name lookup (<sref ref =" [basic.lookup.qual]" />)
74
+ in the context of `D`.
75
+ </p >
76
+ <p >
77
+ [<i >Example 1</i >:
78
+ The reference to `is_array_v` in the specification of `std::to_array`
79
+ (<sref ref =" [array.creation]" />) refers to `::std::is_array_v`.
80
+ — <i >end example</i >]
81
+ </p >
82
+ <p >
83
+ [<i >Note 2</i >: Operators in expressions (<sref ref =" [over.match.oper]" />)
84
+ are not so constrained; see <sref ref =" [global.functions]" />.
85
+ — <i >end note</i >]
86
+ </p >
87
+ <p >
88
+ The meaning of the unqualified name `swap` is established
89
+ in an overload resolution context for swappable values
90
+ (<sref ref =" [swappable.requirements]" />).
91
+ The meanings of the unqualified names
92
+ `make_error_code`, `make_error_condition`,
93
+ <ins >`from_stream`,</ins >
94
+ and `submdspan_mapping`
95
+ are established as-if by performing argument-dependent lookup
96
+ (<sref ref =" [basic.lookup.argdep]" />).
97
+ </p >
98
+ </blockquote >
99
+ </li >
100
+ </ol >
101
+
39
102
</resolution >
40
103
41
104
</issue >
0 commit comments