Compartir a través de


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'

Consulte también

const
constexpr