Bug 5368 – Remove Typesafe Variadic Functions for class objects

Status
NEW
Severity
enhancement
Priority
P4
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2010-12-24T00:47:44Z
Last change time
2024-12-13T17:54:36Z
Keywords
spec
Assigned to
No Owner
Creator
bearophile_hugs
Moved to GitHub: dmd#18324 →

Comments

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
THIS ISSUE HAS BEEN MOVED TO GITHUB https://github.com/dlang/dmd/issues/18324 DO NOT COMMENT HERE ANYMORE, NOBODY WILL SEE IT, THIS ISSUE HAS BEEN MOVED TO GITHUB