Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

[res.on.requirements] Not sufficiently clear on transitiveness and disjunctions LWG 3429 #3912

Copy link
Copy link
Open
@JohelEGP

Description

@JohelEGP
Issue body actions

-1- A sequence Args of template arguments is said to model a concept C if Args satisfies C (13.5.2 [temp.constr.decl]) and meets all semantic requirements (if any) given in the specification of C.
-2- If the validity or meaning of a program depends on whether a sequence of template arguments models a concept, and the concept is satisfied but not modeled, the program is ill-formed, no diagnostic required.
-3- If the semantic requirements of a declaration's constraints ([structure.requirements]) are not modeled at the point of use, the program is ill-formed, no diagnostic required.

With this wording:

  • Does random_access_range<span<int>> impose any semantic requirement at all? Because its specification is only code.
  • How about viewable_range<span<int>>? Is it clear that we're only requiring transitively modeling concepts only in the first part of the disjunction which evaluates to true (so borrowed_range and not view)?
  • Is it clear that viewable_range<drop_view<span<int>>> does it the other way around?

Metadata

Metadata

Assignees

No one assigned

    Labels

    lwgIssue must be reviewed by LWG.Issue must be reviewed by LWG.not-editorialIssue is not deemed editorial; the editorial issue is kept open for tracking.Issue is not deemed editorial; the editorial issue is kept open for tracking.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      Morty Proxy This is a proxified and sanitized view of the page, visit original site.