Statisches Element mit verschachteltem Lambda kann nicht erfasst werden

Ich habe ein Problem mit einer verschachtelten Lambda-Funktion, die kein statisches Klassenmitglied sehen kann. Visual Studio 2010 gibt mir eine C2065 (nicht deklarierte Kennung) aus Gründen, die ich nicht verstehe.

Hier ist ein einfacher Fall, der mein Problem hervorhebt:

#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[])
{
}

Weiß jemand was ich falsch mache?

Danke, Christian

Antworten auf die Frage(1)

Ihre Antwort auf die Frage