|
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