编辑代码

#include <iostream>
#include <memory>
using namespace std;

template<class T>
void print(const auto_ptr<T>&);//注意:必须以引用方式传入const auto_ptr

int main() {
	auto_ptr<int> p(new int);
	*p = 369;
    
    print(p);//将打印369,但此时由于是const auto_ptr返回auto_ptr指针不会自动释放

	
	*p = 963;
	print(p);
	return 0;
}
template<class T>
void print(const auto_ptr<T>& p) {
	if (p.get() == NULL)
		cout << "NULL"<<endl;
	else
		cout << *p<<endl;

}