|
Boost Users : |
From: Frank Birbacher (bloodymir.crap_at_[hidden])
Date: 2006-04-25 20:42:31
Hi!
I want to create a container of pointers to objects in a range
(first,last(. I tried to use mpl, but have been without success. I
understand, that the lambda "&_1" cannot specify its concrete return
type, so I added ret<T>(...). But the resulting lambda is rejected by
the make_transform_iterator function. I'm using boost 1.33.0 on gcc 4.0.2
//****** CODE BEGIN ******
#include <vector>
#include <iterator>
#include <boost/iterator/transform_iterator.hpp>
#include <boost/lambda/lambda.hpp>
template<typename Iterator>
void foo(Iterator first, Iterator last)
{
using boost::make_transform_iterator;
using namespace boost::lambda;
typedef typename std::iterator_traits<Iterator>::pointer Pointer;
std::vector<Pointer> objectPointers(
make_transform_iterator(first, ret<Pointer>(&_1)),
make_transform_iterator(last, ret<Pointer>(&_1))
);
// ...
}
int main()
{
std::vector<int> v;
//instantiate template:
foo(v.begin(), v.end());
}
//***** CODE END ******
// ** ERROR on GCC 4.0.2: **
/mnt/daten/develop/boost/boost/iterator/transform_iterator.hpp:43:
Fehler: kein Typ namens »result_type« in »class
boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boost::lambda::explicit_return_type_action<int*>,
boost::tuples::tuple<boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boost::lambda::other_action<boost::lambda::addressof_action>,
boost::tuples::tuple<boost::lambda::lambda_functor<boost::lambda::placeholder<1>
>, boost::tuples::null_type, boost::tuples::null_type,
boost::tuples::null_type, boost::tuples::null_type,
boost::tuples::null_type, boost::tuples::null_type,
boost::tuples::null_type, boost::tuples::null_type,
boost::tuples::null_type> > >, boost::tuples::null_type,
boost::tuples::null_type, boost::tuples::null_type,
boost::tuples::null_type, boost::tuples::null_type,
boost::tuples::null_type, boost::tuples::null_type,
boost::tuples::null_type, boost::tuples::null_type> > >«
The error says it cannot find the type "result_type" in "class ....".
What is wrong here?
Frank
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net