C++ Logo

std-discussion

Advanced search

Re: Lvalue-to-rvalue conversion

From: Russell Shaw <rjshaw_at_[hidden]>
Date: Tue, 23 Dec 2025 17:47:20 +1100
On 23/12/25 03:56, Brian Bi wrote:
>
> /Brian Bi/
>
> On Mon, Dec 22, 2025, 9:32 AM Russell Shaw via Std-Discussion <std-
> discussion_at_[hidden] <mailto:std-discussion_at_[hidden]>> wrote:
>
> Hello M.P,
>
> I understand what you said, but i'm trying to match it to what the std says
> (14882:2024).
>
> On 23/12/25 00:52, M.P. wrote:

...

> What it really means is that those conversions are applied only if doing so
> produces a prvalue of a type that the operator can accept for that operand.

I found it more obvious reading [over.match.oper]:

********************************************************
...
— For the operator ,, the unary operator &, or the operator ->, the built-in
candidates set is empty.
For all other operators, the built-in candidates include all of the candidate
operator functions defined in 12.5 that, compared to the given operator,
...
— accept operand types to which the given operand or operands can be converted
according to 12.2.4.2, and
...
********************************************************


12.2.4.2.1 [over.best.ics.general]:
********************************************************
A well-formed implicit conversion sequence is one of the following forms:
— a standard conversion sequence (12.2.4.2.2),
— a user-defined conversion sequence (12.2.4.2.3), or
— an ellipsis conversion sequence (12.2.4.2.4).
********************************************************

Received on 2025-12-23 06:47:26