No se puede capturar miembro estático con lambda anidada
Tengo un problema con una función lambda anidada que no puede ver un miembro de clase estática. Visual Studio 2010 me ofrece un C2065 (identificador no declarado) por razones que no puedo entender.
Aquí está el caso simple que destaca mi problema:
#include <algorithm>
#include <vector>
using namespace std;
struct foo
{
void do_some()
{
std::vector<int> a;
std::vector<int> b;
for_each( a.begin(), a.end(), [&] ( const int& m )
{
// works
auto j = _i + 1;
for_each( b.begin(), b.end(), [&] ( const int& n )
{
**// doesn't work**
auto k = _i + 1;
} );
} );
}
static int _i;
};
int main(int argc, char* argv[])
{
}
Alguien sabe lo que estoy haciendo mal?
Gracias cristian