Kompilatorfel C2131

uttrycket utvärderades inte till en konstant

Anmärkningar

Ett uttryck som deklarerats som const eller constexpr har inte utvärderats till en konstant under kompileringen. Kompilatorn måste kunna fastställa värdet för uttrycket vid den tidpunkt då det används.

Exempel

Det här exemplet visar ett sätt att orsaka felet C2131 och hur du åtgärdar det.

// 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'

Se även

konstant
constexpr