Thread overview | |||||
---|---|---|---|---|---|
|
January 17, 2017 How can I implement this in D: a variant array of varying function pointer types (diff number of args or types) | ||||
---|---|---|---|---|
| ||||
Z add(Z...)(Z a...) { return a + b; } func[] operatorPool = [&add!int]; Variant library isn't liking that. Removing & causes another error. Essentially I want a pool of all operators that I define, but these operators can be of differing types (which I should be able to programatically grab), and different N-aryness. |
January 17, 2017 Re: How can I implement this in D: a variant array of varying function pointer types (diff number of args or types) | ||||
---|---|---|---|---|
| ||||
Posted in reply to Enjoys Math | On Tuesday, 17 January 2017 at 10:49:14 UTC, Enjoys Math wrote:
> Z add(Z...)(Z a...) {
> return a + b;
> }
>
> func[] operatorPool = [&add!int];
>
> Variant library isn't liking that. Removing & causes another error.
>
> Essentially I want a pool of all operators that I define, but these operators can be of differing types (which I should be able to programatically grab), and different N-aryness.
func? I mean std.variant.Variant there.
|
January 17, 2017 Re: How can I implement this in D: a variant array of varying function pointer types (diff number of args or types) | ||||
---|---|---|---|---|
| ||||
Posted in reply to Enjoys Math | On Tuesday, 17 January 2017 at 10:49:14 UTC, Enjoys Math wrote: > Z add(Z...)(Z a...) { > return a + b; > } > > func[] operatorPool = [&add!int]; > > Variant library isn't liking that. Removing & causes another error. > > Essentially I want a pool of all operators that I define, but these operators can be of differing types (which I should be able to programatically grab), and different N-aryness. Try using `variantArray` from std.variant. see https://dlang.org/phobos/std_variant.html#.variantArray |
Copyright © 1999-2021 by the D Language Foundation