|
Boost : |
From: Aleksey Gurtovoy (agurtovoy_at_[hidden])
Date: 2004-11-01 00:25:38
Vesa Karvonen writes:
> Hi,
>
> I have made some optimizations (resulting in an order of magnitude (10x)
> improvement in compile-time in some cases on GNU g++) to the library
> and implemented a couple of new metafunctions. The latest snapshot can
> now be downloaded from the Files Section (both zip and tar.bz for your
> convenience):
>
> http://groups.yahoo.com/group/boost/files/LazyMPL/
>
> Please note that the library is only a proof-of-concept made in about 2
> days.
> It should be quite possible to provide a more comprehensive library of lazy
> metafunctions and provide facilities like the lambda-facility of Boost MPL.
> (Also, you shouldn't worry about the upper case naming used in the library.)
>
> Lazy template metaprogramming, as shown by the lazy metaprogramming
> library, eliminates the number one stumbling block of template
> metaprogramming as described by every introduction or guide to template
> metaprogramming (e.g. http://www.boost.org/libs/mpl/doc/#applyif and
> Generative Programming section 10.11.1.3 Taking Advantage of Lazy
> Behavior (particularly pages 441-443... "You should remember this when
> writing static code" ;)).
>
> In lazy template metaprogramming, invocations (::type) are only needed
> when a value needs to be explicitly examined (e.g. to extract the head
> of a list). Use of the typename-keyword can be practically eliminated and
> forwarding (use of inheritance) is the usual way to implement functions.
Vesa,
I, for one, am by no means ignoring this. I'll be sure to take a closer look
at your work as soon as we get the release out of the door.
-- Aleksey Gurtovoy MetaCommunications Engineering
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk