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