template <class T> class H {
  T h;
public:
  H(const T &t) : h(t) {}
};
template <class T> void g(const H<T> &e = H<T>(0)) {}
template <class T> void f(T t) { g(H<T>(t)); }
int main() { f(1); return 0; }