Annex G (informative)
Ill-formed, no diagnostic required
[ifndr]
G.10
[temp]
: Templates
[ifndr.temp]
G.10.3
[ifndr:temp.constr.atomic.equiv.but.not.equiv]
Specified in:
[temp.
constr.
atomic]
1
#
If the validity or meaning of the program depends on whether two atomic constraints are equivalent, and they are functionally equivalent but not equivalent, the program is ill-formed, no diagnostic required
.
2
#
[
Example
1
:
template
<
int
N
>
concept
Add1
=
true
;
template
<
unsigned
N
>
void
f2
(
)
requires
Add1
<
2
*
N
>
;
template
<
unsigned
N
>
int
f2
(
)
requires
Add1
<
N
*
2
>
&
&
true
;
void
h2
(
)
{
f2
<
0
>
(
)
;
// IFNDR, requires determination of subsumption between atomic constraints
// that are functionally equivalent but not equivalent
}
—
end example
]