#include <iostream>
using namespace std;

template <typename T>
struct example {
	T* p_;
	example(T* p): p_{p} {
		cout << "example(T* p)\n";
	}
	~example() {
		cout << "~example()\n";
		delete p_;
	}
};

int main() {
	cout << "start main\n";
	example<int> p{new int};
	cout << "end main\n";
	return 0;
}