मैं कक्षा valgrind
का उपयोग कर संकेत के साथ किसी भी मेमोरी लीक संभावना के लिए जाँच कर रहा हूँ और पता चला निम्नलिखित कार्यक्रम कोई स्मृति लीक है:क्या घोषणा के साथ मेमोरी लीक संभव है (नया any_type())?
#include <iostream>
#include <utility>
#include <memory>
using namespace std;
class base{};
int main()
{
unique_ptr<base> b1 = make_unique<base>();
base *b2 = new base();
cout << is_same<decltype(new base()), decltype(b1)>::value << endl;
cout << is_same<decltype(new base()), decltype(b2)>::value << endl;
delete b2;
return 0;
}
यह कैसे संभव हो सकता है?
इसका एक विशेष रूप से दिलचस्प परिणाम [std :: declval] (http://en.cppreference.com/w/cpp/utility/declval) जैसे कार्यों है जो विशेष रूप से अभिव्यक्तियों के इस प्रकार में उपयोग के लिए हैं, उदाहरण के लिए 'decltype (std :: declval()। विधि()) ', और वास्तव में वास्तव में कहीं भी परिभाषित नहीं किया जाता है। –
cartographer