class C { double d; public: C() : d(1.0) {} }; template <class T> C *f(T n) { return new C[(int)n]; } int main() { f(1); return 0; }