C++ Logo

std-discussion

Advanced search

Re: Unclear template type equivalence for decltype(dependent expression)

From: mauro russo <ing.russomauro_at_[hidden]>
Date: Tue, 12 Nov 2024 13:29:18 +0100
>> That's why I supposed that A<40> and A<42> were related to the statement
on unevaluated operands,
>> as example of same (simple-)template-ids representing the concept-ids
([temp.names]-9, currently ยง13.3-9).
>> Should it be replaced with an example showing concept-ids with different
tokens ?

> If we don't need to highlight "same type", we shouldn't need to highlight
the
> concept-id situation, either. It's also covered by [temp.type].

Don't know to other readers, but it makes confusion to me for two
motivations:
- redundant with respect to [temp.type]-3
- out of context, as presenting template-ids instead of template
declartions on which [temp.over.link] is focused.

It seems that Example 2 in [temp.over.link]-4 is more useful for
[temp.over.link]-5.
I mean, the first row of Example 2 is meaningful for p4, but the
same/different type shown
in second and third rows of Example 2 match the topic of p5, not p4.
Should Example 2 be moved in p5 ?
Additionally, p5 itself does not make it explicit that equivalence (e.g.,
for dependent expressions or
unevaluated operands) leads to same template type declaration.


>> ...
> This is highlighting the "tokens used to name types may differ" part of
the rule.
> Obviously, concept-ids don't name types.
>> ...
> It's trying to explain the rule a little bit. We can certainly get rid
of the note
> if it's confusing.

If any, I would suggest an example with unevaluated operand and different
tokens
to form concept-ids, so matching that part of the rule.


Mauro.

Received on 2024-11-12 12:29:34