Error del compilador C2131
la expresión no se evaluó como una constante
Una expresión declarada como const
o constexpr
no se ha evaluado como una constante en tiempo de compilación. El compilador debe poder determinar el valor de la expresión en el punto donde se usa.
Ejemplo
Este ejemplo muestra una manera de provocar el error C2131 y cómo corregirlo.
// c2131.cpp
// compile by using: cl /EHsc /W4 /c c2131.cpp
struct test
{
static const int array_size; // To fix, init array_size here.
int size_array[array_size]; // C2131
};
const int test::array_size = 42;
c2131.cpp
c2131.cpp(7): error C2131: expression did not evaluate to a constant
c2131.cpp(7): note: failure was caused by non-constant arguments or reference to a non-constant symbol
c2131.cpp(7): note: see usage of 'array_size'