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