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.