-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:
random_access_range<span<int>>
impose any semantic requirement at all? Because its specification is only code.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
)?viewable_range<drop_view<span<int>>>
does it the other way around?RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4