Statically forbid string ~ size_t ?

Peter Alexander peter.alexander.au at gmail.com
Fri Oct 14 15:42:33 PDT 2011


On 14/10/11 12:23 PM, Steven Schveighoffer wrote:
> On Thu, 13 Oct 2011 18:34:35 -0400, Don <nospam at nospam.com> wrote:
>
>> On 13.10.2011 23:07, bearophile wrote:
>>> I think that int+char is acceptable in D, but string~size_t is not
>>> good. I think this is bug prone (especially given the expectations of
>>> programmers coming from other languages). So I suggest to statically
>>> disallow string~size_t. string~char, string~dchar, and string~string
>>> are of course OK.
>>>
>>> So far I have written no enhancement request/bug report on this
>>> because I am not so sure...
>>
>> The problem is things like:
>> int i;
>> string s = "0x" ~ ('0' + x);
>> since char + int --> int.
>>
>
> string s = "0x" ~ cast(char)('0' + x);
>
> Problem solved.
>
> -Steve

Agreed.

I don't think it's worth violating fundamental principles for the sake 
of a minor convenience in relatively uncommon situations.

Honestly, I'd like to get rid of implicit conversions altogether, but 
maybe that's just me...


More information about the Digitalmars-d mailing list