On Saturday, 7 February 2015 at 03:48:24 UTC, Adam D. Ruppe wrote:
wrote:
 b = -256;

that won't fit in a byte btw.

Woops, I typed that example too fast :)


The rest of the assignment stuff is easy. I'd prolly even do it with a template:

this(T)(T t) { this.opAssign(t); } // for construction
Byte opAssign(T)(T t) if(T.sizeof == 1) { // for other assignment
    data_holder = cast(typeof(data_holder) t);
}

and that should do it.

This code is almost exactly what I came up with. But what about the function problem?

void echo(Byte b);

echo('c'); // won't work

I can't figure out a way to make this work (without making echo a template). If D supported implicit conversions from built-in types to user types then it could work. Do you know if D might support that later or if there's a reason for not supporting it?

Reply via email to