On Thursday, 26 January 2017 at 00:02:03 UTC, Profile Anaysis wrote:
Many times we pass compound types(non-primitives) as arguments to functions.

I don't understand what issue you are solving. I see an undefined syntax:

foo(|a,b,|c1,c2,3||,|e|,|f,g,c|)

To replace an existing syntax:

foo(T1(a,b,new X(c1,c2,c3)),T2(e),T3(f,g,c));

The primary difference I'm seeing is that the undefined syntax doesn't specify what type is being created. To this end the one time I recall desiring this is when using std.variant:

void foo(Variant v) { ... }

'foo' will now take anything, but I can't call it with anything, instead I must call:

foo(Variant(3));

or

foo(Algebraic!(int, string, float)("hello"))

But this is a very special type.

Reply via email to