Comment #0 by bearophile_hugs — 2010-12-24T00:47:44Z
I suggest to remove a feature from the D2 language, "Typesafe Variadic Functions" for class objects:
http://www.digitalmars.com/d/2.0/function.html
This is the example in the docs:
class Foo
{
int x;
char[] s;
this(int x, char[] s)
{
this.x = x;
this.s = s;
}
}
void test(int x, Foo f ...);
...
Foo g = new Foo(3, "abc");
test(1, g); // ok, since g is an instance of Foo
test(1, 4, "def"); // ok
test(1, 5); // error, no matching constructor for Foo
In the last years I have never used this feature, so I think it's not useful often enough.
Once the feature is missing you have to replace code like this:
test(1, 4, "def");
With:
test(1, new Foo(4, "def"));
So it doesn't seem a significant loss.
Comment #1 by andrej.mitrovich — 2013-01-23T17:45:58Z
It's definitely a weird feature I've never seen used before. What was the rationale for adding this? Is it some feature ported from another language?
Comment #2 by robert.schadek — 2024-12-13T17:54:36Z