I have the following code (compiler: MSVC++ 10):
std::vector data; data.push_back(1.0f); data.push_back(1.0f); data.push_back(2.0f); // lambda
Alternatively, you can use &value - &data[0], although it might be a bit more expensive.
std::for_each(data.begin(), data.end(), [&data](float const& value) { int idx = &value - &data[0]; });