Special Type Challenge

Jakob Ovrum via Digitalmars-d digitalmars-d at puremagic.com
Fri Feb 6 18:12:06 PST 2015


On Saturday, 7 February 2015 at 01:55:27 UTC, Jonathan Marler 
wrote:
>   Byte b;
>
>   b = 0;
>   b = 1;
>   b = 255;
>   b = -256;
>
>   b = 'a';
>   b = cast(const char)'a';
>   b = cast(immutable char)'a';
>   b = cast(byte)1;
>   b = cast(const byte)1;
>   b = cast(immutable byte)1;
>   b = cast(ubyte)1;
>   b = cast(const ubyte)1;
>   b = cast(immutable ubyte)1;

These are possible with opAssign (which should be accompanied 
with corresponding constructor(s)).

>   Byte echo(Byte b)
>   {
>     return b;
>   }
>   b = echo('a');
>   b = echo(cast(const char)'a');
>   b = echo(cast(immutable char)'a');
>   b = echo(cast(byte)1);
>   b = echo(cast(const byte)1);
>   b = echo(cast(immutable byte)1);
>   b = echo(cast(ubyte)1);
>   b = echo(cast(const ubyte)1);
>   b = echo(cast(immutable ubyte)1);
>
>   Byte[] barr;
>
>   barr = "teststring";
>   barr = [0,1,2,3];
> }

These are not possible as D does not support implicit 
construction.


More information about the Digitalmars-d mailing list