Michael: I have made the assumption that the current manpage operator table was based on the C89/90 C Standard. This was a bad assumption! Please throw out what I have sent and I will create a new more detailed interpretation of the Draft Standards, with more detailed explanation. I do not work with anything but the Draft Standards documents. (With one possible additional source. Will explain later) Thanks! Rick -- RSI (Rick Stanley, Inc.) (917) 822-7771 www.rsiny.com Computer Consulting Linux & Open Source Specialist On Sep 25, 2019, at 4:08 PM, "Michael Kerrisk (man-pages)" < mtk.manpages@xxxxxxxxx> wrote: > Hello Rick, > > (Im reflecting more.) > > On 9/25/19 9:42 PM, Michael Kerrisk (man-pages) wrote: > > Hello Rick, > > > > On 9/25/19 5:23 PM, Rick Stanley wrote: > > > Hello again! > > > > > > In an effort to bring the current manpage for the C operator > > > table up > > > to the current official Standard, I went back and compared the > > > current > > > manpage operator table against the C99, C11, and C17(18) Draft > > > Standards documents. I do not have access to the Official ISO C > > > Standards documents. > > > > > > I have attached a PDF to document my interpretation of the > > > Standards > > > against the current `man operator` manpage > > > > > > In addition to the pre & postfix ++ & -- operators, I have found > > > one > > > additional change & three additions to the table. Because of > > > these > > > appearing in 6.5.x, and A.2.1, I assume they should be included > > > in the > > > operator table. > > > > > > The current table consists of 15 levels of precedence, C99 adds > > > one new > > > level and C11 adds one more. > > > > > > (type) cast operator change > > > > > > In the current table, the cast operator is listed on level 2 of > > > 15 > > > levels, along with other operators. In C99 this operator has > > > been > > > demoted to a new level inserted between level 2 & 3 of the > > > current > > > level, expanding the table to 16 levels of precedence. I assume > > > the > > > associativity is also "right to left", as is level 2. > > How do you deduce that this changed between C89/90 and c99? > I'm not so convinced now that '(type) cast' changed in precedence. > > > > _Generic operator/keyword addition > > > > > > This new operator/keyword was added in C11. A new top level was > > > created and the remainder of the table has been demoted by one > > > level. > > But, is it really an operator? How do you deduce that? > > > > default operator/keyword addition > > > > > > This too has been added to the new top level in C11 > > > > But, 'default' is not an operator as far as I can tell? > > (It is part of the '_Generic' construct, not an operator > > in its own right.) > > > > > _Alignof operator/keyword addition > > This seems clearly correct to me, and I find other sources > that agree on this. > > My general problem is that I find no other sources > that confirm your interpretation of the standard that _Generic > is a new operator at a new level and that '(type) cast' has > changed in precedence. > > Thanks, > > Michael > -- RSI (Rick Stanley, Inc.) (917) 822-7771 www.rsiny.com Computer Systems Consulting Linux & Open Source Specialists