
5 Nov
2008
5 Nov
'08
3:05 p.m.
2008/11/5 Eric MALENFANT <Eric.Malenfant@sagem-interstar.com>
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.