Rant after trying Rust a bit

Jacob Carlborg via Digitalmars-d digitalmars-d at puremagic.com
Fri Jul 24 06:22:54 PDT 2015


On 2015-07-24 02:55, Tofu Ninja wrote:

> I think I agree on the if else issue, seems arbitrary as we already have
> ?:. Other statements as expressions have less obvious meanings. The only
> part is that I wish you could have blocks as expressions. The thing is
> with ufcs, it really should be possible.
>
> For example the following does not compile:
> int a = {return 4;};
>
> but the following does:
> int a = {return 4;}();
>
> I know it's a really small difference, but with UFCS, I would expect you
> the be able to omit the () and have the function literal called
> automatically. Though I can see that this would have problems with auto
> and knowing if it should be a function pointer or to call the function.
>
> I guess what I would expect is "auto a = {return 4;};" to type a to a
> function pointer, but if you explicitly type a to int then the literal
> should be called.
>
> Does UFCS even apply to function pointers? I guess it is a problem, it
> does not seem to be obvious when to call and when to copy the pointer. I
> don't really know what should happen. I think I read a dip a little
> while ago that might have addressed this, but I don't really remember. I
> dont know, now that I have written this, it seems to have more problems
> than I originally thought.

How does UFCS apply here? There isn't even a dot in the code.

-- 
/Jacob Carlborg


More information about the Digitalmars-d mailing list