Compilador erro C2316
Mensagem de erro
'exceção': não pode ser identificada sistema autônomo o destruidor e/ou o construtor de cópia é inacessível
Uma exceção foi detectada por valor ou referência, mas o construtor de cópia e/ou o operador de atribuição estava inacessível.
Esse código foi aceito pelo compilador da versão anterior, mas agora oferece a um erro.Para obter mais informações, consulte Resumo das alterações de quebras de time de compilar.
Exemplo
O exemplo a seguir gera C2316:
// C2316.cpp
// compile with: /EHsc
#include <stdio.h>
extern "C" int printf_s(const char*, ...);
struct B
{
public:
B() {}
// Delete the following line to resolve.
private:
// copy constructor
B(const B&)
{
}
};
void f(const B&)
{
}
int main()
{
try
{
B aB;
f(aB);
}
catch (B b) { // C2316
printf_s("Caught an exception!\n");
}
}