我有一個循環,我的C++/OpenMP的代碼看起來像這樣:爲什麼不允許未簽名的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頁面並沒有給我提供任何線索。
讓我們來精確一點:與VS 2013捆綁在一起的MS C/C++編譯器可能不支持v2.5之後的OpenMP,但與VS集成的Intel編譯器確實支持OpenMP 3.1。與VS集成的其他編譯器是否支持我不知道的更新標準。 – 2013-07-22 09:06:59
對,糾正。 – 2013-07-22 12:08:52