Meta-Programming

Sean Kelly sean at f4.ca
Fri May 25 09:59:55 PDT 2007


David B. Held wrote:
> Mahe wrote:
>> I have worked with D for some months. It is much better than C++ and a 
>> good alternative to Java or C#.
>>
>> But I think a really powerful aspect is missing in D compared to 
>> Java/C#: Meta-Programming!
>> In D it is only possible to create a class with a standard constructor 
>> from a string with a class name in it. But there is no introspection 
>> of the structure of the class, no dynamic method calls, no dynamic 
>> attribute reading or setting.
>> But such reflection possibilities are important in component based 
>> software design of large systems.   [...]
> 
> This is usually called "reflection", since it doesn't really imply code 
> generation the way templates and macros does.  D does provide reflection 
> through type tuples and class constructors, but it could use some better 
> support.  As for actual metaprogramming support, D blows Java/C#/C++ out 
> of the water.

Yup.  About the only issue I have with metaprogramming in D (which this 
thread made me think of) is the lack of support for template class 
ctors.  And peripherally, I don't think there's any way to get a 
ParameterTypeTuple for a class ctor either.  I ran into this the other 
day and finally had to use an alias for the ctor arg list.


Sean



More information about the Digitalmars-d mailing list