Ian wrote:
Markus
Thanks for the reply, but no dice. The idea was to use the address of the current item as a quick and dirty counter modular counter, However this code:
std::for_each(begin, end, l::_1 = l::ll_static_cast<int>(_1) % 3);
does not take the address but the items value, and unfortunately this:
std::for_each(begin, end, l::_1 = l::ll_static_cast<int>(&_1) % 3);
does not compile. Now I could get a bit more realistic and just code the thing a bit cleaner like this:
int x = 0; for_each( lookup_, lookup_ + (sizeof(lookup_) / sizeof(unsigned int)), _1 = ++var(x) % 3 );
But that's kinda skirting around the real issue which is, if I can't use lambda to *directly* replace code that is trivial with a hand written loop, what chance when the complexity is raised a bit?
It is a feature that your original (nonportable) code cannot be replaced by
a lambda expression. Why not just use the correct version? Or even better:
template