Objective-D, reflective programming, dynamic typing

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Fri Apr 3 13:55:58 PDT 2009


Christopher Wright wrote:
> Andrei Alexandrescu wrote:
>>>> No safety can be built into a function that traffics in void*, EVER. 
>>>> No matter what you do. A proverb goes "No matter how nicely you 
>>>> dress a mule, you'll still call it a mule." (It was s/mule/ass/g in 
>>>> Romanian, but ass is ambiguous in English.) So yes, it would be a 
>>>> waste of time to embellish a fundamentally deeply unsafe feature. A 
>>>> better use of time would be to improve its safe counterpart.
>>>
>>> The void* is paired with a TypeInfo. A Variant uses raw data and 
>>> TypeInfo, and manages to be reasonably safe. If you want guaranteed 
>>> safety, you must use something like Java (or SafeD vaporware).
>>
>> I don't want guaranteed safety. I want safety when lack thereof is 
>> gratuitous.
> 
> But your variadic template prohibits polymorphism.

I explained that that's not the case.

> Therefore, the lack 
> of safety with variadic arguments is not gratuitous, merely unnecessary 
> in certain situations.

Gratuitous.

> It would, however, be quite nice to get a void*[] rather than a void*, 
> since it would provide more safety (array bounds) and ease of use (you 
> can index it or foreach it), while eliminating a standard library module.

No.


Andrei



More information about the Digitalmars-d mailing list