之前編譯VS說爲什麼是不允許爲[&A,&B]在PPL類的成員變量
錯誤構件 「測試:: A」 不是變量
錯誤構件「測試:: B」是不是一個可變
代碼:
#include <iostream>
#include <ppl.h>
using namespace concurrency;
using namespace std;
class test
{
static double A[ 3 ][ 3 ];
static double B[ 3 ][ 3 ];
public:
int test_function();
};
double test::A[ 3 ][ 3 ] = { { 0.7, -0.2, -1 },
{ -4, -2, -2 },
{ -0.4, 1.7, -1.8 } };
double test::B[ 3 ][ 3 ] = { { 0.6, -1.2, 1.1 },
{ 2, 3, -2 },
{ -1, 0.05, 0.05} };
int test::test_function()
{
parallel_for (0, 100, [ &A, &B ](int y) {
for (int x = 0; x < 100; x++) {
for (int i = 0; i < 3; i++)
for (int j = 0; j < 3; j++)
A[ j ][ i ] += A[ j ][ i ] * B[ j ][ i ];
}
});
}
int main()
{
return 0;
}
錯誤:
'test::A': a lambda capture variable must be from an enclosing function scope
'test::B': a lambda capture variable must be from an enclosing function scope
我該怎麼辦?
它沒有任何捕獲工作嗎?你不應該需要捕捉靜態。 – Pubby 2013-02-13 08:06:53
爲什麼你必須捕獲靜態變量? – 2013-02-13 08:08:29
我是新的C++,我怎麼沒有任何捕獲?你可以給我一個例子嗎? – user2055437 2013-02-13 08:10:08