Поделиться через


Ошибка компилятора C2382

"function" : redefinition; различные спецификации исключений

Замечания

Эта ошибка означает, что перегрузка функции была предпринята только в спецификации исключения.

По умолчанию компилятор считает спецификацию эквивалентной noexceptthrow() спецификации или throw(some_type) спецификации. В разделе /Za, эта проверка более строгая.

Чтобы устранить эту проблему, измените все объявления и определения функции (или конкретную перегрузку функции), чтобы использовать ту же спецификацию исключений.

Пример

В следующем примере создается C2382:

// C2382.cpp
// compile with: /Za /c
void f1(void) noexcept {}
void f1(void) {}   // C2382
void f2(void) throw() {}   // OK

См. также

/Za (Отключение расширений языка)