Implicit conversion
Ali Çehreli
acehreli at yahoo.com
Wed Jan 17 23:32:01 UTC 2018
On 01/17/2018 03:15 PM, Jiyan wrote:
> Hello,
>
> I want to convert from ints implicit to a struct type, so for example:
>
> struct use
> {
> int x;
>
> int toInt()
> {
> return x;
> }
>
> use fromInt(int v)
> {
> return use(v);
> }
>
> alias toInt this; // implicit conversion to int value
>
> this(int v)
> {x = v;}
> }
>
> void useP(int v)
> {
> v.writeln;
> }
>
> void useV(use v)
> {
> v.writeln;
> }
>
> void main(string[] args)
> {
> use a = use(2);
> //useP(a);
> useV(2); // how can i let this work?
> }
>
> Thanks :)
>
Not possible in D by design.
std.conv.to is smart to use the int-taking constructor, which I think is
useful in templated code in some cases:
import std.conv : to;
useV(2.to!use);
Ali
More information about the Digitalmars-d-learn
mailing list