Rant after trying Rust a bit
deadalnix via Digitalmars-d
digitalmars-d at puremagic.com
Fri Jul 24 15:14:48 PDT 2015
On Friday, 24 July 2015 at 21:27:09 UTC, Tofu Ninja wrote:
> On Friday, 24 July 2015 at 19:10:33 UTC, Walter Bright wrote:
>> On 7/24/2015 11:42 AM, Jacob Carlborg wrote:
>>> I don't see the difference compared to a regular parameter.
>>> If you don't specify
>>> any constraints/traits/whatever it like using "Object" for
>>> all your parameter
>>> types in Java.
>>
>> So constraints then will be an all-or-nothing proposition? I
>> believe that would make them essentially useless.
>>
>> I suspect I am not getting across the essential point. If I
>> have a call tree, and at the bottom I add a call to interface
>> X, then I have to add a constraint that additionally specifies
>> X on each function up the call tree to the root. That is
>> antiethical to writing generic code, and will prove to be more
>> of a nuisance than an asset.
>>
>> Exactly what sunk Exception Specifications.
>
> But thats exactly how normal interfaces work...
>
> eg:
> interface Iface{ void foo(){} }
>
> void func1(Iface x){ func2(x); }
> void func2(Iface x){ func3(x); }
> void func3(Iface x){ x.bar(); } // ERROR no bar in Iface
>
> Only options here are A: update Iface to have bar() or B: make
> a new interface and change it on the whole tree. The same
> "problem" would exist for the concepts, but its the reason why
> people want it.
C: do a runtime check or downcast.
More information about the Digitalmars-d
mailing list