[cxx-abi-dev] mangling for fold-expressions

John McCall rjmccall at apple.com
Mon Nov 10 18:30:46 UTC 2014


On Nov 8, 2014, at 9:16 AM, Richard Smith <richardsmith at google.com> wrote:
> Hi,
> 
> WG21 is voting on a proposal for "fold-expressions" today. These are syntactically of the form:
> 
>   ( .... + pack )
>   ( pack + ... )
>   ( p0 + ... + pack )
>   ( pack + ... + pn )
> 
> (where + can be any binary operator). These expand to
> 
>   (((p0 + p1) + ...) + pn)
> 
> for the first and third cases and
> 
>   (p0 + (p1 + (... + pn)))
> 
> for the other two cases.

And the expansion for (pack + … + pack) is “semantic error”?

I assume ‘pack’ is any expression containing an unexpanded pack reference?

> These need a mangling; I suggest (and have implemented):
> 
> <expression> ::=
>   fl <binary operator-name> <expression>   # ( ... op pack )
>   fr <binary operator-name> <expression>   # ( pack op ... )
>   fx <binary operator-name> <expression> <expression>   # ( expr op ... op expr )

This doesn’t seem to correspond to one of your examples.

John.


More information about the cxx-abi-dev mailing list