www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - address of overloaded function

reply Freddy <Hexagonalstar64 gmail.com> writes:
How do you take the address of a specific overloaded function. 
This won't compile
---
import std.range;

void main()
{
     ForwardAssignable!int range;
     int delegate()  property get = &range.front;
     void delegate(int)  property set = &range.front;
}
---
Sep 30 2015
next sibling parent Adam D. Ruppe <destructionator gmail.com> writes:
On Wednesday, 30 September 2015 at 22:48:03 UTC, Freddy wrote:
 How do you take the address of a specific overloaded function. 
 This won't compile
You can write a helper function that uses __traits(getOverloads) and searches them for the right signature: http://dlang.org/traits.html#getOverloads
Sep 30 2015
prev sibling parent Jacob Carlborg <doob me.com> writes:
On 2015-10-01 00:48, Freddy wrote:
 How do you take the address of a specific overloaded function. This
 won't compile
 ---
 import std.range;

 void main()
 {
      ForwardAssignable!int range;
      int delegate()  property get = &range.front;
      void delegate(int)  property set = &range.front;
 }
 ---
Not sure why that doesn't work. This works: int foo () { return 0; } void foo (int) {} void main() { int function () a = &foo; void function (int) b = &foo; } -- /Jacob Carlborg
Oct 01 2015