Complex numbers are harder to use than in C
Marc Schütz via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Sun Nov 20 03:46:04 PST 2016
On Saturday, 19 November 2016 at 20:08:42 UTC, Marduk wrote:
> On Saturday, 19 November 2016 at 11:11:36 UTC, Nordlöw wrote:
>> On Saturday, 19 November 2016 at 09:38:38 UTC, Marduk wrote:
>>> The difference is that D is more verbose. Am I missing
>>> something? Can we have C's behaviour in D?
>>
>> Something like
>>
>> auto I(T)(T im)
>> if (isNumeric!T)
>> {
>> return complex(0, im);
>> }
>>
>> unittest
>> {
>> auto x = 1 + 2.I;
>> }
>
> Nice. But I am unsure of how to use this. I just pasted the
> definition of I inside the main function of my program followed
> by auto x = 1 + 2.I; and the compiler complained with Error: no
> property 'I' for type 'int'.
Try placing it outside the function. Method call syntax doesn't
work with nested functions, see here:
https://dlang.org/spec/function.html#pseudo-member
"The reason why local symbols are not considered by UFCS, is to
avoid unexpected name conflicts."
More information about the Digitalmars-d-learn
mailing list