Changes between Initial Version and Version 1 of BoostMplRoadmap


Ignore:
Timestamp:
Mar 16, 2009, 6:01:57 AM (14 years ago)
Author:
Aleksey Gurtovoy
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • BoostMplRoadmap

    v1 v1  
     1''Transferred from the old wiki, most of the issues below should be converted into tickets at some point.''
     2
     3== Short-term TODO list ==
     4
     5 * {{{transform}}} on maps should not require providing an inserter (http://article.gmane.org/gmane.comp.lib.boost.user/27842)
     6 * ADL barrier technique needs to be applied to all MPL sequences (http://thread.gmane.org/gmane.comp.lib.boost.devel/115368)
     7  * GCC {{{vector<...>}}} performance problem (http://thread.gmane.org/gmane.comp.lib.boost.devel/118413).
     8 * Compilation failure with GCC: {{{make_variant_over}}} and {{{vector}}} (http://thread.gmane.org/gmane.comp.lib.boost.user/9741).
     9 * {{{vector_c}}}, {{{range_c}}} et al. don't work with enumeration types:
     10   * http://thread.gmane.org/gmane.comp.lib.boost.devel/116955
     11   * http://article.gmane.org/gmane.comp.lib.boost.devel/116940
     12   * http://thread.gmane.org/gmane.comp.lib.boost.user/9219
     13 *  {{{at<AssocSeq,Key,Default>}}} form is not supported (contrary to the docs, http://thread.gmane.org/gmane.comp.lib.boost.user/9597).
     14 * {{{transform}}} fails if passed two sequences of different sizes (http://thread.gmane.org/gmane.comp.lib.boost.user/10364).
     15 * warnings in {{{long_<MAX_LONG>}}} etc. (http://article.gmane.org/gmane.comp.lib.boost.devel/121580)
     16 * weird interaction between set and map headers (http://article.gmane.org/gmane.comp.lib.boost.devel/132994/)
     17 * {{{pop_back< range_c<int,0,10> >}}} doesn't work, contrary to the book (http://article.gmane.org/gmane.comp.lib.boost.user/20386/).
     18
     19 * {{{apply + lambda + BOOST_MPL_LIMIT_METAFUNCTION_ARITY + 1}}} issue (http://thread.gmane.org/gmane.comp.lib.boost.user/9699).
     20 * Implement lambda scoping as per http://thread.gmane.org/gmane.comp.lib.boost.devel/115924.
     21 * Document {{{pair_view}}}.
     22 * {{{contains<set,k>}}} as a synonym for {{{has_key<set,k>}}}.
     23 * {{{contains_c<s,N> === find_if< s, equal_to< _1, integral_c<s::value_type,N> > >}}} where {{{s}}} is a sequence of integral constants.
     24 * Double-check type_traits TR1 changes (http://article.gmane.org/gmane.comp.lib.boost.devel/117026/).
     25 * Modify {{{empty_base}}} to handle non-default initialization (http://groups-beta.google.com/group/comp.lang.c++.moderated/msg/8f72194e7bc0afb4).
     26 * MSVC preprocessor fixes: replace {{{__LINE__}}} with {{{__COUNTER__}}}, in {{{<boost/mpl/assert.hpp>}}} and possibly elsewhere (http://thread.gmane.org/gmane.comp.lib.boost.user/7922).
     27 * {{{for_each}}} variant which allows to (efficiently) terminate the iteration (http://article.gmane.org/gmane.comp.lib.boost.user/13843)
     28
     29== Long-term TODO list ==
     30
     31 * Consider full laziness as per Vesa's posts (http://thread.gmane.org/gmane.comp.lib.boost.devel/112542).
     32 * Improve diagnostics; in particular, introduce (optional) concept checking for all template parameters, e.g.:
     33{{{
     34        template<
     35              typename Seq
     36            , typename T
     37            BOOST_MPL_AUX_PARAMS_CONCEPT_CHECK( is_forward_sequence<Seq>::value )
     38            >
     39        struct find
     40        {
     41            // ...
     42        };
     43}}}
     44
     45 * Tools for composing inlined (run-time) algorithms:
     46  * http://lists.boost.org/MailArchives/boost/msg55203.php
     47  * http://groups-beta.google.com/group/comp.lang.c++.moderated/msg/1319e53af9955115?dmode=source
     48 * Integration with Alexander Nasonov's "overloads" library (http://thread.gmane.org/gmane.comp.lib.boost.devel/117532)
     49 * Move (and document!) Eric Friedman's {{{lambda_match}}} from Sandbox to the main CVS.
     50 * Officially adopt one of the compile-time {{{rational}}} / {{{fixed}}} numbers implementations.
     51
     52== Maintanance items ==
     53
     54 * Remove direct dependency on Boost.Config; in particular, replace all {{{<boost/config.hpp>}}} includes with a corresponding {{{<boost/mpl/aux_/config/<i>specific_condig_header.hpp</i>>}}}
     55
     56
     57== Miscellaneous Ideas ==
     58
     59 * Self-recursive lambdas:
     60{{{
     61        if_< equal<N,int_c<0> >
     62              N
     63            , plus<
     64                  bitand_<N, int_c<1> >
     65                , self< shift_right_c<N,3> > // self-recursion
     66                >
     67            >
     68}}}
     69 * "Round" lambda, see:
     70  * http://thread.gmane.org/gmane.comp.lib.boost.devel/77267
     71  * http://thread.gmane.org/gmane.comp.lib.boost.devel/77359
     72  * http://thread.gmane.org/gmane.comp.lib.boost.devel/77360
     73  * http://thread.gmane.org/gmane.comp.lib.boost.devel/77361
     74  * And also http://thread.gmane.org/gmane.comp.lib.boost.devel/117077
     75 * make fold result a sequence, see:
     76  * http://article.gmane.org/gmane.comp.lib.boost.devel/119087
     77
     78== Resolved issues ==
     79 * '''DONE:''' Reportedly failing {{{equal<<i>vector</i>,<i>vector</i>::type>}}} asserts (http://thread.gmane.org/gmane.comp.lib.boost.devel/118872).
     80 * '''DONE:''' Unclear {{{begin<set>}}} issue (http://thread.gmane.org/gmane.comp.lib.boost.devel/116988).
     81  * Most likely related to the {{{set}}} bug reported by Geoffrey Romer (http://article.gmane.org/gmane.comp.lib.boost.user/13896)
     82 * '''DONE:''' Document {{{for_each}}}.