On Thu, Feb 25, 2016 at 1:27 PM, Jeff Squyres (jsquyres) <[email protected]
> wrote:
> I still find it fairly astounding that the naked word "rank" (vs "rank()")
> is ambiguous with a variable and a function call. I wouldn't be surprised
> by this in a scripting language; if this really is true in C++, that's
> quite surprising to me.
A "bare" function name (without parens) is the address of the function,
which can be converted to an int, long, etc.
So the "rank" identifier can validly refer to the function in this context.
This is no different than C with respect to typing rules:
$ cat foo.c
#include <stdio.h>
int main(void) { printf("%ld\n", main); }
$ gcc -o foo foo.c
$ ./foo
134513448
-Paul
--
Paul H. Hargrove [email protected]
Computer Languages & Systems Software (CLaSS) Group
Computer Science Department Tel: +1-510-495-2352
Lawrence Berkeley National Laboratory Fax: +1-510-486-6900