0

Visual Studio 10でシンプルなものを使用しようとすると、#pragma omp parallel for理解できないエラーが発生します

これが私がすることです:

#pragma omp parallel for
for (int i(0); i < size; ++i)
{
// do some stuff
}

そして、コンパイル時にこれらのエラーが発生します:

error C2059: syntax error : 'constant' // on the for() line
error C2059: syntax error : ';'  // on the for() line
error C2143: syntax error : missing ';' before '{'
// repeat previous error for every { or } in file
fatal error C1004: unexpected end-of-file found  // on last line of file

openmpのサポートは、コンパイラー・オプションでアクティブ化されます。このコードは、openmp命令がなくてもコンパイルされ、完全に正常に実行されます。

私はこのように中括弧でforループをネストしようとしました:

#pragma omp parallel for
{
for (int i(0); i < size; ++i)
{
// do some stuff
}
}

しかし、コンパイラーは、#pragma命令の直後にforループを期待していると言っています。

私がここで間違っている可能性があることを誰かが見ていますか?私はすでに他のプログラムで同じ条件でOpenMPをうまく使用しているので、それは私を夢中にさせます。

4

1 に答える 1

1

forOpenMPがアクティブな場合、ループ制御ブロック内でオブジェクトスタイルのイニシャライザーがサポートされているとは思いません。コードを次のように書き直す必要があります。

for (int i = 0; i < size; ++i)

2番目のケースでは、エラーは、コードブロックではなく、omp for直後のループを必要とするという事実が原因です。for

于 2012-06-05T11:36:47.630 に答える