#include <iostream>
using namespace std;

template <class T>
inline void safe_delete (T &ptr) {
	if (ptr != 0) {
		delete ptr;
		ptr = 0;
	}
}

int main ()
{
	int * i = new int (10);
	double * d = new double (20.0);

	cout << *i << endl;
	safe_delete <int *> (i);
	cout << i << endl;
	safe_delete <double *> (d);
	//safe_delete <int [4]> (j); // falsch! kompiliert aber
}


