$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Andreas Huber (ahd6974-spamgroupstrap_at_[hidden])
Date: 2005-08-03 07:21:35
David Abrahams <dave <at> boost-consulting.com> writes:
> >> Why an mpl::list<>? What's special about that structurue? Why not
> >> mpl::vector?
> >
> > The sequence just needs to support certain operations, e.g. push_front,
> > reverse, etc. So, mpl::vector<> should work too (I never checked).
>
> If you're reversing the sequence, all your arguments about requiring
> mutability for efficiency reasons are invalid. You might as well do
I don't think so, I'm only reversing the sequence *after* performing other
mutating operations on it. Here's an example from the current implementation
(context_type_list is assembled from multiple InnerInitial lists):
template< class CommonContext, class DestinationState >
struct make_context_list
{
typedef typename mpl::reverse< typename mpl::push_front<
typename mpl::erase<
typename DestinationState::context_type_list,
typename mpl::find<
typename DestinationState::context_type_list,
CommonContext
>::type,
typename mpl::end<
typename DestinationState::context_type_list
>::type
>::type,
DestinationState
>::type >::type type;
};
[I know that this code needs improvement]
> > Don't know, I can't think of anything that would keep you from using
> > deque or vector. I guess it would be best to document the exact
> > requirements and make measurements so that I can tell the user which
> > of the standard mpl sequences are best.
>
> Not a bad idea, but I wouldn't go overboard. In this case the first
> priority should be to lift needless restrictions.
I've actually already added two to-do items. The one dealing with the
restrictions appears before the measurements.
> The restrictions
> you're using don't even neccessarily lead to better efficiency.
Right, I got that :)
Regards,
-- Andreas Huber When replying by private email, please remove the words spam and trap from the address shown in the header.