DIP 45 - approval discussion

Timon Gehr timon.gehr at gmx.ch
Tue Nov 12 19:05:43 PST 2013


On 11/13/2013 03:48 AM, Andrei Alexandrescu wrote:
> On 11/12/13 6:26 PM, Timon Gehr wrote:
>> On 11/13/2013 03:15 AM, Andrei Alexandrescu wrote:
>>> ...
>>>>>> - If I know the fully qualified name of a class, there are better
>>>>>> ways
>>>>>> to instantiate this class than passing a string containing that
>>>>>> name to
>>>>>> Object.factory in order to call the default constructor.
>>>>>
>>>>> What are the better ways?
>>>>
>>>> Call the default constructor. Call a delegate/virtual function that
>>>> calls the default constructor.
>>>
>>> Wait, doesn't Object.factory call the default constructor of the created
>>> object?
>>> ...
>>
>> Yes, I was listing some ways to do this that I think are better than
>> calling Object.factory.
>
> OK I think I figure you are confused.

I'm not.

> You can't call the default
> constructor of an object you don't know the type of.
>
> Andrei
>

Indeed. There was a premise stating that I do. :o)

In any case, the only use for string -> new object is when there is some 
kind of parsing going on (and then you should make sure in some way that 
only objects of types in some well-defined subset can be constructed), 
otherwise you can always pass around richer data structures, such as an 
actual factory object.


More information about the Digitalmars-d mailing list