inline void my_assert(bool cond, const std::exception &e = my_assert_failed())
{
if (!cond)
throw e;
}
मानक सुनिश्चित करता है कि:संदर्भ द्वारा पारित एक अस्थायी तर्क फेंक
एक समारोह कॉल में एक संदर्भ पैरामीटर (5.2.2) के लिए एक अस्थायी बाध्य बनी रहती है जब तक पूर्ण अभिव्यक्ति के पूरा होने से युक्त कहते हैं।
और एक फेंक दिया अस्थायी वस्तु के लिए:
अस्थायी रूप में लंबे समय कोई हैंडलर कि अपवाद के लिए क्रियान्वित किया जा रहा है के रूप में बनी हुई है।
क्या मैं अनुमान लगा सकता हूं कि my_assert
पर एक अस्थायी है जो कैच ब्लॉक समाप्त होने तक जीवित रहता है?
'throw' [अभिव्यक्ति] (http://en.cppreference.com/w/cpp/language/throw) करता है इसकी बहस की एक प्रति ताकि आप अस्थायी नहीं फेंक रहे हों। – user657267
@ user657267 यह एक उत्तर है। – Angew