Boost logo

Boost Users :

Subject: Re: [Boost-users] [Lambda] Using placeholders as array indices
From: user790 user790 (user790_at_[hidden])
Date: 2008-11-05 10:05:42


2008/11/5 Eric MALENFANT <Eric.Malenfant_at_[hidden]>

> I did not try to understand why what's written above does not work, but it
> seems to me that writing the lambda as this would produce the intended
> result:
> (var(a)[_1])(0) = 1;

Indeed, thanks!

I was just about to answer that this does not solve the general problem of
using placeholders as indices as this assumes the array is a left-value.
Then I tested and realized that the const version of my original code:

int x = bind(static_cast<std::vector<int>::const_reference
(std::vector<int>::*)(std::vector<int>::size_type)
const>(&std::vector<int>::operator[]), a, _1)(0);

actually compiles and works. If anyone is knowledgeable about this I'd glad
to hear an explanation.

Thanks,

P.



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