Is the address-of operator (&) really needed?

Sandeep Datta datta.sandeep at gmail.com
Thu May 31 05:27:17 PDT 2012


>
> If we removed the requirement for the ampersand, along with 
> requiring parentheses for non-property functions, code which 
> expected to call the function without parentheses would 
> silently compile, but not do what was intended.


Consider this...

float handleRequest() {
  return 1.0f;
}

float x = handleRequest; //compilation error

or

auto x = handleRequest;

writefln("%f", x); //compilation error


I think we'd get a compile time error for most cases without 
significant changes to the compiler. But the edge cases if any 
can probably be detected at compile time with modifications to 
the compiler.

Here is an edge case (for reference)...

writefln(x);// will now print the address of the function


More information about the Digitalmars-d mailing list