www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - How can I implement this in D: a variant array of varying function

reply Enjoys Math <enjoysmath gmail.com> writes:
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.
Jan 17
next sibling parent Enjoys Math <enjoysmath gmail.com> writes:
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.
Jan 17
prev sibling parent Nicholas Wilson <iamthewilsonator hotmail.com> writes:
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
Jan 17