unsigned policy (implicit conversions for complex?)

Andrei Alexandrescu (See Website For Email) SeeWebsiteForEmail at erdani.org
Mon Feb 12 19:52:11 PST 2007


James Dennett wrote:
> Walter Bright wrote:
>> Derek Parnell wrote:
>>> On Mon, 12 Feb 2007 16:03:14 -0800, Andrei Alexandrescu (See Website For
>>> Email) wrote:
>>>
>>>> http://erdani.org/d-implicit-conversions.pdf
>>>  
>>>> Did I forget something?
>>> Characters are not numbers. 
>> That's an enticing point of view, and it sounds good. But Pascal has
>> that view, and my experience with it is it's one of the reasons Pascal
>> sucks.
>>
>> Examples:
>>
>> 1) converting text <=> integers
>> 2) converting case
>> 3) doing compression/encryption code
>> 4) using characters as indices (isspace() for example)
>>
>> Take away the implicit conversions, and such code gets littered with
>> ugly casts.
> 
> I don't find that; for reasons we don't need to go into
> (except to say that I'm glad C++09 will have better Unicode
> support than C++03), I've been using a separate type for
> characters in a significant body of C++ code, and find very
> little need for casts.  Certainly not enough to dispense
> with the advantages of type safety.  When the code gets
> low level enough to need integral values, I don't mind
> doing the conversion manually as there will typically be
> a need to handle byte ordering issues or similar too.  But
> that's just in the cases I've seen in the last {mumble}
> years.
> 
> The examples you give are real, make up a tiny fraction
> of code that handles characters, and aren't, in my experience,
> significantly adversely affected by the elimination of
> these implicit conversions.

I agree. To add insult to injury, the inverse automated conversion would 
allow me to call toupper(a * b /c) without a cast in sight. What the 
hell is that needed for? Dammit.

Andrei



More information about the Digitalmars-d mailing list