cplusplus / cplusplus/draft

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

Open
#4,760 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TeX
Stars
221
Forks
813
Avg merge
16h 4m
Merged PRs (30d)
36

Description

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.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating [over.match.funcs#general-7.3] and compare its terminology with [over.match.copy], [over.match.conv], and [over.match.ref]. Check whether “the former set” and the later permissible-type rule clearly identify the corresponding explicit or non-explicit set; done when the wording is consistent and unambiguous.

Written by the indexing model from the issue text.

Assessment

Tech stack
tex
Domain
documentation
Issue type
Documentation
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.