例外クラスのauto_ptrに問題があり、最終的に次のようになりました。
#include <memory>
class MyException
{
std::auto_ptr<int> m_foo2;
};
int main()
{
try
{
throw MyException();
}
catch (const MyException&)
{
}
return 0;
}
これは次のコマンドでコンパイルできません:
/perforce/unstable/test/Common/Exceptions/TestException4.cpp:関数'int main()':/perforce/unstable/test/Common/Exceptions/TestException4.cpp:12:エラー:'の呼び出しに一致する関数がありませんMyException :: MyException(MyException)'/perforce/unstable/test/Common/Exceptions/TestException4.cpp:4:注:候補は次のとおりです:MyException :: MyException()/perforce/unstable/test/Common/Exceptions/TestException4.cpp :4:注:MyException :: MyException(MyException&)/perforce/unstable/test/Common/Exceptions/TestException4.cpp:12:エラー:スローされた式で
また、auto_ptrを削除すると、エラーはなくなります。
これは、例外がコピーまたは割り当てられているためですか?auto_ptr
例外でsを使用する方法はありますか?