Concatenation of ubyte[] to char[] works, but assignation doesn't

Marc Schütz via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Oct 5 04:48:51 PDT 2015


On Monday, 5 October 2015 at 10:30:02 UTC, Jonathan M Davis wrote:
> On Monday, October 05, 2015 09:07:34 Marc Schütz via 
> Digitalmars-d-learn wrote:
>> I don't think math would be a problem. There are some obvious 
>> rules that would likely just work with most existing code:
>>
>> char + int = char
>> char - int = char
>> char - char = int
>> char + char = ERROR
>
> That depends on whether VRP can figure out that the result will 
> fit. Otherwise, you'd be stuck with int. As it stands, all of 
> these would just end up with int, I believe, though if they're 
> assigned to a char and the int is a constant, then VRP may kick 
> in and make a cast unnecessary.
>

I think Walter's argument for allowing the int <-> char 
conversions was that they are necessary to allow arithmetic. My 
rules show that it works without these implicit conversions.

VRP is a different problem, though. AFAICS, in the following 
code, VRP either is smart enough, or it isn't, no matter whether 
char implicitly converts to int.

int diff = 'a' - 'A';
char c = 'A';
char d = c + diff;


More information about the Digitalmars-d-learn mailing list