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

Reply via email to