다음을 통해 공유


컴파일러 오류 C2316

업데이트: 2007년 11월

오류 메시지

'exception' : 소멸자로 Catch할 수 없거나 복사 생성자에 액세스할 수 없습니다.
'exception' : cannot be caught as the destructor and/or copy constructor are inaccessible

값 또는 참조로 인해 예외가 catch되었지만 복사 생성자나 할당 연산자에 액세스할 수 없습니다.

이전 버전의 컴파일러에서는 이 코드를 사용할 수 있지만 현재 버전에서는 오류가 발생합니다. 자세한 내용은 컴파일 타임의 주요 변경 내용 요약을 참조하십시오.

예제

다음 샘플에서는 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");   
    }
}