Pointer to template types?
Chris via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Mon Apr 28 03:40:49 PDT 2014
On Monday, 28 April 2014 at 10:32:18 UTC, bearophile wrote:
> Chris:
>
>> I need an array that contains pointers to types created via
>> template. To stick to my usual example:
>>
>> Person!(string)
>>
>> How can I make an array with pointers to concrete "instances"
>> of Person!(string)?
>
> Every template creates a new type, so you can't put them as
> they are in an array. There are various solutions, none nice.
> You can try with a wrapper that performs type erasure, or
> simpler you can make all the same type giving them the string
> at run-time. Another solution is use OOP, something like
> (untested and I am not sure):
>
> abstract class APerson {}
> class Person(string name) : APerson {}
>
> Bye,
> bearophile
So there is no way of filling an array with something like
Person!(string) *pptr;
foreach(person; people) {
buf ~= &person;
}
More information about the Digitalmars-d-learn
mailing list