Я проверяю возможность утечки памяти с помощью указателей классов с помощью valgrind
и выяснил, что следующая программа не имеет утечек памяти:
#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;
}
Как это возможно?