[Issue 5931] keyword new won't allow default initialization of a struct where it has a non-zero argument constructor
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Sat May 5 13:15:28 UTC 2018
https://issues.dlang.org/show_bug.cgi?id=5931
Johannes Loher <johannes.loher at fg4f.de> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
CC| |johannes.loher at fg4f.de
Resolution|--- |WONTFIX
--- Comment #6 from Johannes Loher <johannes.loher at fg4f.de> ---
The first problem mentioned has been solved since 2.063.
The second problem is still present, error message of 2.080.0:
main.d(16): Error: none of the overloads of this are callable using argument
types (File), candidates are:
/usr/include/dlang/dmd/std/stdio.d(387):
std.stdio.File.this(shared(_IO_FILE)* handle, string name, uint refs = 1u, bool
isPopened = false)
/usr/include/dlang/dmd/std/stdio.d(425): std.stdio.File.this(string
name, const(char[]) stdioOpenmode = "rb")
/usr/include/dlang/dmd/std/stdio.d(443): std.stdio.File.__ctor(R1,
R2)(R1 name) if (isInputRange!R1 && isSomeChar!(ElementEncodingType!R1))
/usr/include/dlang/dmd/std/stdio.d(451): std.stdio.File.__ctor(R1,
R2)(R1 name, R2 mode) if (isInputRange!R1 &&
isSomeChar!(ElementEncodingType!R1) && isInputRange!R2 &&
isSomeChar!(ElementEncodingType!R2))
The reason is in general, that you can't call postblits as if they were
constructors (`File file; auto f = File(file);` also does not work).
However, it seems that postblits will probably be replaced by some form of copy
constructor, so this might even resolve this issue. I will close this for now.
If you really want this feature, please submit a new issue as an enhancement
request.
--
More information about the Digitalmars-d-bugs
mailing list