Re: Array of Algebraic argument syntax
On 9/22/20 2:53 PM, Kasra Sadeghi wrote: On Tuesday, 22 September 2020 at 21:36:48 UTC, Ali Çehreli wrote: ... alias Value = Algebraic!(int, double, string, None); ... void main() { printValue([Value(4.5), Value("hello"), Value(42)]); } Thanks! Wish there was a less redundant syntax for the arrays. Do you really need to write literal Value arrays? If not, you would build a Value[] at runtime without seeing the syntax above. Still, here is a function template that provides better syntax: Value[] valueArray(Args...)(Args args) { Value[] result; foreach (arg; args) { result ~= Value(arg); } return result; } void main() { printValue(valueArray(4.5, "hello", 42)); } Ali
Re: Array of Algebraic argument syntax
On Tuesday, 22 September 2020 at 21:36:48 UTC, Ali Çehreli wrote: ... alias Value = Algebraic!(int, double, string, None); ... void main() { printValue([Value(4.5), Value("hello"), Value(42)]); } Thanks! Wish there was a less redundant syntax for the arrays.
Re: Array of Algebraic argument syntax
On 9/22/20 2:30 PM, Kasra Sadeghi wrote: Hi everyone! What's the syntax for passing an array of Algebraics? definition: class None {} class Value = Algebraic!(int, double, string, None); That should be 'alias' instead of 'class': import std.variant; import std.stdio; class None {} alias Value = Algebraic!(int, double, string, None); void printValue(Value[] values) { foreach(value; values) { value.writeln; } } void main() { printValue([Value(4.5), Value("hello"), Value(42)]); } Ali
Array of Algebraic argument syntax
Hi everyone! What's the syntax for passing an array of Algebraics? definition: class None {} class Value = Algebraic!(int, double, string, None); void printValue(Value[] values) { foreach(value; values) { value.writeln; } } usage attempts: printValue([4.5]); printValue(Value[4.5]); printValue(Value[](4.5));