On the richness of C++

Georg Wrede georg at nospam.org
Sun Apr 13 13:39:10 PDT 2008


Edward Diener wrote:
> Walter Bright wrote:
> 
>> Edward Diener wrote:
>>
>>> Walter Bright wrote:
>>>
>>>> Kevin Bealer wrote:
>>>>
>>>>> I was amazed that Boost could do things like the Lambda support 
>>>>> with _1 _2, etc.
>>>>> Those Boost guys are geniuses.
>>>>
>>>>
>>>> I agree, they are geniuses. But that's really what is wrong with 
>>>> C++, you shouldn't have to be a genius to get advanced things done.
>>>
>>>
>>> Are D's templates a complete replacement in functionality for Boost's 
>>> MPL ? If so could you write an article on your web site about the 
>>> how's and why's of that ? I am still trying to understand D's 
>>> templates based on the sparse documentation of them.
>>
>>
>> I don't really understand Boost MPL, but D's template system is 
>> considerably more powerful than C++'s.
> 
> 
> I do not know the MPL either although I understand the general concept. 
> It is a C++ template metaprogramming library for manipulating types at 
> compile time so that the final result of the body of a template deals in 
> whatever types the template metaprogramming needs to generalize for his 
> programming task.
> 
> I agree that what I currently understand of D templates looks clearer 
> than the template system in C++ but I am not knowledgable enough to know 
> whether it is "better", or easier to use in doing the sorts of things 
> which Boost programmers accomplish.
> 
>> I agree that more documentation is needed, but one can easily write a 
>> book about it.
> 
> 
> The question is: has anyone tackled in D some of the template 
> metaprogramming tasks which various Boost programmers have accomplished 
> with C++ ?
> 
> I am trying to get a feel for how different, or how much easier ( or 
> perhaps harder ) it would be to do Boost things like Spirit ( 
> lex/yacc-like DSEL ), function ( universal callable ), bind and/or 
> lambda ( function object creation ), shared_ptr ( sharable smart 
> pointer, obviously for RAII in D because of GC ), signals ( generalized 
> multicast events ), multi_index ( multiple index containers ), regex 
> and/or xpressive ( regular expressions ), tokenizer ( generalized 
> tokening of strings ), date_time ( date/time and time intervals ) and 
> many others ( the above are just my favorites but I have hardly 
> explored/used all of them ) which C++ programmers find very useful. All 
> of these libraries depend on template metaprogramming in C++. Can their 
> equivalents just as easily be implemented and have any of them been done 
> already ?

Now the above is approaching the idea of this thread.

> I have not looked at the D libraries, phobos and tango I believe they 
> are called, so maybe I am way off base comparing the Boost libraries to 
> what may already be in D. But I am trying to get an idea if D is capable 
> of doing these Boost things just as easily or easier.

Yes! And I think those are things that very may, who don't regularly 
write in this NG, really wonder about with D.



More information about the Digitalmars-d mailing list