$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Aleksey Gurtovoy (agurtovoy_at_[hidden])
Date: 2002-06-26 08:17:01
Andrei Alexandrescu wrote:
> STL does reduce the amount of code you write quite
> drastically, and it would be hard to convince me
> otherwise because I know that from direct and
> extensive experience. But why compare mpl with stl
> instead of concretely discussing on mpl as it stands.
May be because there is a direct relationship between these two libraries?
Here's how I would write a code that finds the element of maximum size in a
sequence using (extended) STL facilities (something we use here at work):
long size_of(something const&);
std::vector<something> s;
// ...
assert(!s.empty());
long max_size = *stl::max_element(
stl::transformed_seq(s,std::ptr_fun(size_of))
);
Here is a compile-time equivalent of the above implemented with MPL:
typedef mpl::list4<int,char,char[50],double> types;
// ...
typedef mpl::max_element<
mpl::transformed_seq< types, mpl::size_of<_> >
>::type::type max_size;
BOOST_STATIC_ASSERT(max_size::value == 50);
Does it ring a bell?
/Aleksey