Boost logo

Boost :

From: Douglas Gregor (gregod_at_[hidden])
Date: 2002-08-29 17:31:38


Aleksey Gurtovoy's template metaprogramming library (MPL) has been accepted
into Boost. Congratulations to Aleksey and thank you to the many reviewers.

The vast majority of reviewers voted for acceptance; a summary of reviewer
requests and comments is given below.

[Design]
* The iterator abstraction debate was never fully resolved. The iterator
abstraction (that separates MPL algorithms from MPL containers via iterators,
as in the STL) is central to the design of MPL. However, there is dissention
regarding the necessity of this abstraction within the template
metaprogramming domain, and the discussion persists because nobody has been
able to identify a clear-cut example where a static data structure other than
a simple typelist is required. The concensus here appears to be that MPL
should not be delayed because of this question, but that additional
experience with MPL will show whether the iterator abstract is useful or not.

[Terminology]
* Metafunction class vs. metafunctor vs. quoted Metafunction vs ...: Aleksey
was counting votes on the naming of this entity.

* select_if vs. if_

[Documentation]
* Clarify the roles of the various placeholders (_ vs. _1, _2, etc.)

* Incomplete reference documentation. Ron Garcia posted a list here (some of
the items posted have since been documented):
  http://aspn.activestate.com/ASPN/Mail/Message/1288208

[Stability]
* Interface changes in MPL left the MPL paper out of sync with the library
(e.g., interface to iter_fold and several other algorithms). The MPL paper
should be updated if it is to serve as an introduction to the library. [This
may have already been resolved]

* Ron Garcia also pointed to parts of MPL that are not tested by the
testsuite. The list is here:
  http://aspn.activestate.com/ASPN/Mail/Message/1288208

* Some algorithms are broken for empty sequences (e.g., copy) [May already be
resolved]

* insert/insert_range broken [May already be resolved]

* push_back for vector?

[Requested Additions]
* is_sequence has been requested to determine if a type T is a sequence [Eric
Friedman]

* an associative container (e.g., mpl::map) [Tom Wenisch]

Thanks again to Aleksey and all of the reviewers, and my apologies for the
delay in posting the review results.

        Doug Gregor
        gregod_at_[hidden]
        Review Manager, MPL


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk