1class MyClass {2public:3 template <template <typename> class S, typename T>4 S<T> *func1(T *a) {5 return new S<T>();6 }7 template <typename T, T (*S)()>8 void func2(T a) {9 S();10 }11};12