On Thursday, 23 March 2023 at 13:38:51 UTC, Alexander Zhirov wrote:
Is it possible to convert such records inside the structure to the assigned type?

```d
struct MyVal
{
    string value;
// Here it would be possible to use an alias to this, but it can only be used 1 time
}

auto a = MyVal("100");
auto b = MyVal("11.2");

int MyInt = a;        // Implicitly convert to target type
float myFloat = b;    // Implicitly convert to target type
```

Here is another working variation of Ali's code, try it yourself:

```d
import std.stdio;
import std.conv;

struct MyVal
{
    string value;
    T opCast(T)() { return value.to!T; }
}

void main()
{
    auto a = MyVal("100");
    auto b = MyVal("11.2");

    auto MyInt = a.to!int;
    auto myFloat = b.to!float;

    writeln(MyInt, ", ", myFloat);
}
```

In general, all type casting and parsing stuff usually exist under `std.conv` in the standard library, so you can take advantage of it.

Reply via email to