Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[over.match.funcs#general-7.3] is unclear on "for the former set" and its "additional permissible types" #4760

Open
xmh0511 opened this issue Jul 19, 2021 · 0 comments

Comments

@xmh0511
Copy link
Contributor

xmh0511 commented Jul 19, 2021

Each such case also defines sets of permissible types for explicit and non-explicit conversion functions; each (non-template) conversion function that

  • is a non-hidden member of S,
  • yields a permissible type, and,
  • for the former set, is non-explicit

In this rule, the "set of permissible types for explicit" is first appeared. But, in these [over.match.copy], [over.match.conv], [over.match.ref] subclauses, they first defined the set of permissible types for non-explicit functions. Presumably, according to "is non-explicit", the former set refers to "the set of permissible types for non-explicit functions". I think the order should keep consistent. The sentence should be modified to be that

Each such case also defines sets of permissible types for non-explicit and explicit conversion functions;

To make the meaning of "the former set" be clear and consistent here.


Issue 2:

is also a candidate function. If initializing an object, for any permissible type cv U, any cv2 U, cv2 U&, or cv2 U&& is also a permissible type. If the set of permissible types for explicit conversion functions is empty, any candidates that are explicit are discarded.

Since in these [over.match.copy], [over.match.conv], [over.match.ref] subclauses, we defined the set of permissible types for non-explicit and explicit conversion function, respectively. So, Is that be more clear if we defined as that

is also a candidate function. If initializing an object, for any permissible type cv U, any cv2 U, cv2 U&, or cv2 U&& is also a permissible type for the corresponding kind(non-explicit or explicit) conversion function. If the original set of permissible types for explicit conversion functions is empty, any candidates that are explicit are discarded.

@xmh0511 xmh0511 changed the title Which set does "for the former set" in [over.match.funcs#general-7.3] refer to? [over.match.funcs#general-7.3] is unclear on "for the former set" and "addition set of permissible types" Jul 19, 2021
@xmh0511 xmh0511 changed the title [over.match.funcs#general-7.3] is unclear on "for the former set" and "addition set of permissible types" [over.match.funcs#general-7.3] is unclear on "for the former set" and its last sentence Jul 19, 2021
@xmh0511 xmh0511 changed the title [over.match.funcs#general-7.3] is unclear on "for the former set" and its last sentence [over.match.funcs#general-7.3] is unclear on "for the former set" and its "additional permissible types" Jul 19, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant