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
Something like this:
template
FunctionT enumerate(IteratorT first,
IteratorT last,
typename std::iterator_traits::difference_type initial,
FunctionT func)
{
for (;first != last; ++first, ++initial)
func(initial, *first);
return func;
}
Used as:
enumerate(data.begin(), data.end(), 0, [](unsigned index, float val)
{
std::cout << index << " " << val << std::endl;
});