On Sunday, 5 June 2022 at 15:45:17 UTC, Salih Dincer wrote:
>Also, when we write to the screen with writeln(), why four times copy-constructors are running?
Playground: https://run.dlang.io/is/qHvLJe
I solved the problem by implementing the toString()
member function. I also had to use a helper writeout()
as below:
struct Foo {
string toString() {
return format("%s", payload);
}
void main() {
void writeout(T)(T text) {
text.toString.writeln;/*
import std.conv;
text.to!string.writeln;//*/
}
writeout(three);
Interestingly, even using to!string
the copy-constructor works extra +4 times! I think there will be performance losses if write()
is used unconsciously everywhere! Although this way, it kisses with ctor +1 times :)
SDB@79