Re: sizeof
Russell Shaw <[email protected]>
| Newsgroups | gmane.comp.gdb.devel |
|---|---|
| Message-ID | <[email protected]> |
Andreas Schwab wrote: >On Mai 11 2022, Russell Shaw wrote: > >> On 10/5/22 5:22 pm, Andreas Schwab wrote: >>> On Mai 10 2022, Russell Shaw wrote: >>> >>>>> Andreas Schwab wrote: >>>>> On Mai 09 2022, Russell Shaw wrote: >>>>> >>>>>> sizeof(int()) should transform to sizeof(int (*)()) according to the C++20 standard. >>>>> >>>>> No, see [expr.sizeof] #3. >>>> >>>> What does "[expr.sizeof] #3" refer to ? >>> Paragrph #3 in section [expr.sizeof]. >>> "The lvalue-to-rvalue (7.3.1), array-to-pointer (7.3.2), and >>> function-to-pointer (7.3.3) standard conversions are not applied to >>> the operand of sizeof." >> >> "Standard conversions" are only applied to expressions, not type-id (which >> is an abstract declarator syntax). > >So what's the chapter and verse for your claim? It is not spelt out, but implied from the context. Clearly, the standard conversions are only a meaningful concept for expressions. "int()" is not an expression, but a type-id for a function pointer "int(*)()" so "sizeof(int())" == "size of ptr to function" unary-expression : ... sizeof unary-expression sizeof ( type-id )