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

template <class T>
class PointCloud {
public: 
    using Ptr = shared_ptr<T>;
}; 

class A{};

int main() {
	PointCloud<A>::Ptr p = PointCloud<A>::Ptr(new A); 
	return 0;
}