मैं अपवाद कक्षाओं में auto_ptr के साथ एक समस्या है नहीं हो सकता है कि मैं अंत में करने के लिए कम:क्यों मैं एक अपवाद वर्ग में एक auto_ptr
:/perforce/unstable/test/Common/Exceptions/TestException4.cpp: In function 'int main()': /perforce/unstable/test/Common/Exceptions/TestException4.cpp:12: error: no matching function for call to 'MyException::MyException(MyException)' /perforce/unstable/test/Common/Exceptions/TestException4.cpp:4: note: candidates are: MyException::MyException() /perforce/unstable/test/Common/Exceptions/TestException4.cpp:4: note: MyException::MyException(MyException&) /perforce/unstable/test/Common/Exceptions/TestException4.cpp:12: error: in thrown expression
#include <memory>
class MyException
{
std::auto_ptr<int> m_foo2;
};
int main()
{
try
{
throw MyException();
}
catch (const MyException&)
{
}
return 0;
}
इस के साथ संकलित करने के लिए विफल रहता है
और अगर मैं auto_ptr को हटा देता हूं तो त्रुटि दूर हो जाती है।
क्या ऐसा इसलिए है क्योंकि अपवाद की प्रतिलिपि बनाई जा रही है या असाइन की जा रही है? क्या अपवाद में auto_ptr
एस का उपयोग करने का कोई तरीका है?
वाह, उच्च गुणवत्ता वाले उत्तरों यहां। एक अच्छा सवाल होना चाहिए। :) – sje397