Formal review results: Template Metaprogramming Library (MPL) accepted
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@cs.rpi.edu Review Manager, MPL
participants (1)
-
Douglas Gregor