------- Comment #5 from dj2con at gmail dot com  2009-07-03 15:29 -------

I was still curious, so I re-read section 6.7.5.3 of the standard.  And having
re-read it, I would like to apologize for troubling everyone -- upon re-reading
6.7.5.3, it now seems obvious that I was mis-applying the "right left rule". 
For anyone else who might pop across this exchange in the future, here is the
explanation:

A regular function prototype, for a function named "D",  *must* be of the
format:

T D( parmlist );

If we replace the name "D" with a dereferenced function pointer "d", the
prototype *must* still be of the same format; otherwise it will no longer be
recognized as a function by the compiler.  And if the prototype is no longer
recognized as a function, it is not going to be parsed properly no matter how
compliant it is with any other rules.  Hence, "T (*d)( parmlist );" is valid,
but "T d * ( parmlist )" is not because the compiler should not recognize that
"d *" is a function.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40627

Reply via email to