| Thread overview | |||||
|---|---|---|---|---|---|
|
September 30, 2015 address of overloaded function | ||||
|---|---|---|---|---|
| ||||
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;
}
---
| ||||
September 30, 2015 Re: address of overloaded function | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Freddy | 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 | |||
October 01, 2015 Re: address of overloaded function | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Freddy | 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 | |||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply