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