P1673: Consider removing Mandates on T for algorithms taking `T init` parameter
Nobody has claimed this yet.
- Dominant language
- HTML
- Stars
- 29
- Forks
- 26
- PR merge metrics
- No merged PRs in 30d
Description
P1673 algorithms that take a T init parameter have language constraining T. For example, after applying PR #354, vector_sum_of_squares has the following Mandates.
-
[1.1]{.pnum}
Tmeets both the Cpp17MoveConstructible
and Cpp17LessThanComparable requirements, and -
[1.2]{.pnum}
abs(declval<InVec::value_type>())is convertible toT.
However, [linalg.reqs.val] already has wording meant to constrain both T and algorithms that use abs. For example, T is a linear algebra value type, so it's already semiregular. This suggests that we could get rid of all these Mandates.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the Mandates shown for vector_sum_of_squares after PR #354 and the requirements in [linalg.reqs.val]. Compare those constraints with the algorithms that take a T init parameter and determine whether the redundant Mandates can be removed consistently. No file or test is named; done means reaching an agreed wording change for all affected algorithms.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- compilers
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100