コンパイラ エラー C2316
更新 : 2007 年 11 月
エラー メッセージ
'exception' は、デストラクタまたはコピー コンストラクタにアクセスできないためキャッチできません。
例外が値または参照によってキャッチされましたが、コピー コンストラクタまたは代入演算子、またはその両方にアクセスできませんでした。
このコードは、以前のバージョンのコンパイラでは許容されましたが、現在はエラーになります。詳細については、「Summary of Compile-Time Breaking Changes」を参照してください。
使用例
次の例では 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");
}
}