线程lambda函数不会编译

时间:2013-05-25 01:26:21

标签: lambda compiler-errors g++ stdthread

我很难理解为什么会发生这种情况,也许这是一个错误。

#include <thread>
#include <cstdio>
using namespace std;

int main(){
    int y=2;
    float fa[2][y]; // thread compile fine if y were 2 hardcoded instead
    fa[0][0]=0.8;
    fa[0][1]=1.8;
    auto fx=[&](){
        for(int c=0;c<2;c++){ // thread compile fine if c<2 were c<1 instead
            printf("\n%f",fa[0][c]); // (1*) "internal compiler error: in expand_expr_real_1, at expr.c:9327"
        }
    };
    fx(); // works fine everytime
    thread(fx).join(); //error (1*)
}

为什么只有在改变我的评论方式时才进行编译?

我正在使用带有winpthreads的gcc 4.8.0。

0 个答案:

没有答案