On Wednesday, December 10, 2014 8:45:53 PM UTC-2, Paavo Helde wrote:
> Belloc wrote in
I was struggling with the word "suppressed", as stated in the Standard. But it finally clicked after I read your response. And the reason seems to be so obvious, that I was missing the correct interpretation. In summary, when the Standard says:
"A function call is a postfix expression followed by parentheses containing a possibly empty, comma-separated list of expressions which constitute the arguments to the function. For an ordinary function call, the postfix expression shall be either an lvalue that refers to a function (in which case the function-to-pointer standard conversion (4.3) is suppressed on the postfix expression), or it shall have pointer to function type."
it is referring to a function name (postfix expression) followed by parenthesis, that is, a normal function call. In this case, obviously you don't need the function-to-pointer conversion and it should be suppressed, as stated. In §4.3/1 you'll find:
"An lvalue of function type T can be converted to a prvalue of type pointer to T."
where the lvalue of function type T is just the postfix expression corresponding to the function name. It doesn't include the parenthesis!
Thanks for your help Paavo.