Boost logo

Boost Users :

Subject: Re: [Boost-users] Help with a boost::lambda problem and boost::array?
From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2009-01-22 21:54:49


AMDG

jesseperla_at_[hidden] wrote:
> > Is there a solution?
>
> It appeared to me that the likely winner was:
> http://www.boost.org/doc/libs/1_37_0/doc/html/lambda/extending.html
>
> Then it seems we would use the boost array's typedef value_type to get
> the return type. However, I do not see operator[] overloading in the
> list of supporting operators here.

That's a documentation problem. It's other_action<subscript_action>.

> But the following code compiles:
> //Testing lambda and vectors/arrays.
> using lambda::_1;
> std::vector<Real> vec(1);
> vec[1] = 0;
> boost::function<Real (std::vector<Real>)> vec_f = _1[0]; //Returns the
> 0'th element.
>
> Hence, it seems that this type of action is supported. Any idea where
> the sourcecode for the std::vector lambda operators are? might be
> useful to just copy/paste.
>

It's all in boost/lambda/detail/operator_return_type_traits.hpp

> Also, I wonder if there is any way to do this generically for all
> vector/array types supporting the Container concept? (I use a lot of
> ublas::vectors). And if operator() is also supported, I use a lot of
> ublas::matrix as well, so this would be nice to have in lambda.

In Christ,
Steven Watanabe


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