On Monday, 20 August 2018 at 12:33:34 UTC, Andrey wrote:
On Monday, 20 August 2018 at 11:38:39 UTC, Paul Backus wrote:
Create an overload of foo that takes two arguments and
combines them into a `Data` struct internally:
void foo(int a, string text)
{
Data data = {a, text};
foo(data);
}
Hmm, not very good solution. In C++ you can not to write type
and compiler will deduce it automatically. In D, as I
understand, this feature isn't supported.
Yes, D's syntax for structure literals requires you to write the
name of the type:
https://dlang.org/spec/struct.html#struct-literal
If the name of the type is too cumbersome to write out, you can
use an alias:
alias ShortName = MyLongAndComplicatedType!(PossiblyWith,
TemplateArguments);
foo(ShortName(a, text));