
5 Nov
2008
5 Nov
'08
12:32 p.m.
I am trying to use boost::lambda's placeholders as array indices. What I tried boils down to this: <code> #include <vector> #include <boost/lambda/bind.hpp> #include <boost/lambda/lambda.hpp> int main(int argc, char * argv[]) { using namespace boost::lambda; std::vector<int> a(10,0); bind(static_cast<std::vector<int>::reference (std::vector<int>::*)(std::vector<int>::size_type)>(&std::vector<int>::operator[]), a, _1)(0) = 1; } </code> But I get the following error (Visual C++ 2008 Express Edition, boost 1.35.0): error C2665: 'boost::lambda::function_adaptor<Func>::apply' : none of the 2 overloads could convert all the argument types What part am I missing? Thanks, P.