Tengo un bucle en mi código C++/OpenMP que tiene este aspecto:¿Por qué no se permiten variables de índice OpenMP sin firmar?
#pragma omp parallel for
for(unsigned int i=0; i<count; i++)
{
// do stuff
}
Cuando compilo (con Visual Studio 2005) me sale el siguiente error:
error C3016: 'i' : index variable in OpenMP 'for' statement must have signed integral type
I Entiendo que el error ocurre porque i
no está firmado en lugar de estar firmado, y al cambiar i
para firmar se eliminó este error. Lo que quiero saber es ¿por qué es esto un error? ¿Por qué no se permiten variables de índice sin firmar? Ver la página MSDN para este error no me da pistas.
Seamos precisos aquí: los compiladores MS C/C++ incluidos con VS 2013 pueden no admitir OpenMP después de v2.5 pero los compiladores Intel, que se integran lo suficientemente bien con VS, sí admiten OpenMP 3.1. No sé si otros compiladores que se integran con VS admiten el estándar más reciente. –
Derecha, corregida. –