C++/OpenMP コードに次のようなループがあります。
#pragma omp parallel for
for(unsigned int i=0; i<count; i++)
{
// do stuff
}
(Visual Studio 2005 で) コンパイルすると、次のエラーが発生します。
error C3016: 'i' : index variable in OpenMP 'for' statement must have signed integral type
i
が署名ではなく未署名であるためにエラーが発生することを理解しており、署名済みに変更i
するとこのエラーが解消されました。私が知りたいのは、なぜこれがエラーなのかということです。符号なしのインデックス変数が許可されないのはなぜですか? このエラーのMSDNページを見ると、何の手がかりも得られません。