digitalmars.D - Object.factory and default constructor
- Cherry (14/14) Feb 14 2014 The code below throws assertion failure. Documentation for
- Jakob Ovrum (3/5) Feb 14 2014 No, that is not a default constructor. Use overloading if you
- Dicebot (4/18) Feb 14 2014 Default constructor is always one declared without the arguments.
The code below throws assertion failure. Documentation for Object.factory says that factory can create an object if the default constructor is present. So the question is -- Does D not consider this(int x=0); a default constructor? module test; class Bar { this(int x=0) {} } void main() { assert(Object.factory("test.Bar") !is null); } // Regards // Cherry
Feb 14 2014
On Friday, 14 February 2014 at 12:53:55 UTC, Cherry wrote:So the question is -- Does D not consider this(int x=0); a default constructor?No, that is not a default constructor. Use overloading if you want it to be.
Feb 14 2014
On Friday, 14 February 2014 at 12:53:55 UTC, Cherry wrote:The code below throws assertion failure. Documentation for Object.factory says that factory can create an object if the default constructor is present. So the question is -- Does D not consider this(int x=0); a default constructor? module test; class Bar { this(int x=0) {} } void main() { assert(Object.factory("test.Bar") !is null); } // Regards // CherryDefault constructor is always one declared without the arguments. Default arguments are pasted upon caller side and can't be figured out from TypeInfo.
Feb 14 2014