I would like to initialize a user defined struct with the = operator and a scalar type (for example: double) on its right hand side, like this:

```
struct real
{
double value;
double error;
...
};
int main()
{
real x = 1.; // supposing error=0.
}
```

It is possible somehow?

I defined my struct like this:

```
struct real
{
double value;
double error;
real(double val, double err);
};
real::real(double val, double err=0);
```

This allows initializatin like this:

```
real x(1.,0.);
real y(1.);
```

I can also overload operator=

```
real operator=(const real param);
real operator=(const double param);
```

but I can not initialize with it!

I can overload the cast operator double(),

but I need the oposite one!

I need to convert double -> real,

and not real -> double!

How can I solve this problem?