Error about @disabled constructor when there is a custom one

Ali Çehreli acehreli at yahoo.com
Tue Jan 22 11:39:59 PST 2013


On 01/22/2013 11:07 AM, Simen Kjaeraas wrote:

 > The workaround is to use static opCall:
 >
 > struct Scene
 > {
 > Array!Surface objects;
 > Array!Light lights;
 >
 > /*private*/ BVHNode root;
 >
 > @disable this();

That line must still be removed.

 > this(size_t objectReserveSpace = 20, size_t lightReserveSpace = 3)

The default parameter values are not useful (or don't make sense) anymore:

     this(size_t objectReserveSpace, size_t lightReserveSpace)

 > {
 > objects.reserve(objectReserveSpace);
 > lights.reserve(lightReserveSpace);
 > }
 >
 > static Scene opCall(size_t objectReserveSpace = 20, size_t
 > lightReserveSpace = 3)
 > {
 > return Scene(objectReserveSpace, lightReserveSpace);

Luckily that line calls the constructor, not itself and avoids an 
infinite loop. :)

Ali



More information about the Digitalmars-d mailing list