Version 2 (modified by 14 years ago) ( diff ) | ,
---|
Transferred from the old wiki, most of the issues below should be converted into tickets at some point.
Short-term TODO list
transform
on maps should not require providing an inserter (http://article.gmane.org/gmane.comp.lib.boost.user/27842)- ADL barrier technique needs to be applied to all MPL sequences (http://article.gmane.org/gmane.comp.lib.boost.devel/115679/)
- GCC
vector<...>
performance problem (http://thread.gmane.org/gmane.comp.lib.boost.devel/118413). - Compilation failure with GCC:
make_variant_over
andvector
(http://thread.gmane.org/gmane.comp.lib.boost.user/9741). vector_c
,range_c
et al. don't work with enumeration types:-
at<AssocSeq,Key,Default>
form is not supported (contrary to the docs, http://thread.gmane.org/gmane.comp.lib.boost.user/9597). transform
fails if passed two sequences of different sizes (http://thread.gmane.org/gmane.comp.lib.boost.user/10364).- warnings in
long_<MAX_LONG>
etc. (http://article.gmane.org/gmane.comp.lib.boost.devel/121580) - weird interaction between set and map headers (http://article.gmane.org/gmane.comp.lib.boost.devel/132994/)
pop_back< range_c<int,0,10> >
doesn't work, contrary to the book (http://article.gmane.org/gmane.comp.lib.boost.user/20386/).
apply + lambda + BOOST_MPL_LIMIT_METAFUNCTION_ARITY + 1
issue (http://thread.gmane.org/gmane.comp.lib.boost.user/9699).- Implement lambda scoping as per http://article.gmane.org/gmane.comp.lib.boost.devel/116000/.
- Document
pair_view
. contains<set,k>
as a synonym forhas_key<set,k>
.contains_c<s,N> === find_if< s, equal_to< _1, integral_c<s::value_type,N> > >
wheres
is a sequence of integral constants.- Double-check type_traits TR1 changes (http://article.gmane.org/gmane.comp.lib.boost.devel/117026/).
- Modify
empty_base
to handle non-default initialization (http://groups-beta.google.com/group/comp.lang.c++.moderated/msg/8f72194e7bc0afb4). - 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). for_each
variant which allows to (efficiently) terminate the iteration (http://article.gmane.org/gmane.comp.lib.boost.user/13843)
Long-term TODO list
- Consider full laziness as per Vesa's posts (http://search.gmane.org/?query=+Lazy+Metaprogramming+Library&group=gmane.comp.lib.boost.devel&sort=relevance).
- Improve diagnostics; in particular, introduce (optional) concept checking for all template parameters, e.g.:
template< typename Seq , typename T BOOST_MPL_AUX_PARAMS_CONCEPT_CHECK( is_forward_sequence<Seq>::value ) > struct find { // ... };
- Tools for composing inlined (run-time) algorithms:
- Integration with Alexander Nasonov's "overloads" library (http://article.gmane.org/gmane.comp.lib.boost.devel/116517, http://article.gmane.org/gmane.comp.lib.boost.devel/117532/)
- Move (and document!) Eric Friedman's
lambda_match
from Sandbox to the main CVS. - Officially adopt one of the compile-time
rational
/fixed
numbers implementations.
Maintanance items
- 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>>
Miscellaneous Ideas
- Self-recursive lambdas:
if_< equal<N,int_c<0> > N , plus< bitand_<N, int_c<1> > , self< shift_right_c<N,3> > // self-recursion > >
- "Round" lambda, see:
- make fold result a sequence, see:
Note:
See TracWiki
for help on using the wiki.