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

Respuestas a la pregunta(1)

Su respuesta a la pregunta