Loopback Wrote:

> Hi!
> 
> While implementing and overloading several different operators for my
> structure I've got stuck with an error.
> 
> As noticed in the attachment, in my opBinaryRight function I mimic the
> opBinary (left) operator by instantiating the structure itself to avoid
> implementing duplicates of the binary operator overloads.
> 
> The opBinaryRight operator is defined as following:
> 
> DVector2 opBinaryRight(string op, T)(T lhs) if(Accepts!T)
> {
>       // Error: template instance vector.DVector2.__ctor!(DVector2) error 
> instantiating
>       return DVector2(lhs).opBinary!op(this);
> }
> 
> I create an additional DVector2 structure and then calls the opBinary
> operator. When creating this DVector2 structure the following
> constructor gets called:
> 
> this(T)(T arg) if(Accepts!T)
> {
>       static if(isScalar!T)
>               this(arg, arg);
>       else
>               // Error: constructor call must be in a constructor
>               this(arg.tupleof);
> }
> 
> [Blah, blah, blah]

This is probably related to a question recently asked on SO, which you might 
have even been the author. But for synergy: 
http://stackoverflow.com/questions/6553950/how-to-use-template-constructors-in-d

Reply via email to