implicit casting from primitive type
Ali Çehreli
acehreli at yahoo.com
Mon Aug 29 11:23:06 PDT 2011
On Mon, 29 Aug 2011 21:33:13 +0200, Mariusz Gliwiński wrote:
> Hello,
> this will be easy question. I defined attributes, that are taking my
> custom structures as attributes. Then, I'd like to add implicit
> conversion to this structures from primitive types, such as: <code>
> some.attribute = [1, 2, 3]; // i'd like to do that some.attribute =
> MyStruct(1, 2, 3); // now it's like that </code>
> opCast can be used only to casting FROM my type, but not TO... Was that
> in a book?
>
> Thanks,
> Mariusz Gliwiński
To solve it for this specific case, you can overload attribute() to take
int[]:
import std.exception;
struct MyStruct
{
int i;
int j;
int k;
}
struct CustomStruct
{
MyStruct ms;
@property void attribute(int[] args)
{
enforce(args.length == 3);
ms = MyStruct(args[0], args[1], args[2]);
}
}
void main()
{
auto some = CustomStruct();
some.attribute = [ 1, 2, 3 ];
}
Ali
More information about the Digitalmars-d-learn
mailing list