void f(int a, int b = 123); template <typename T> void g(T a, T b = 123); template <typename U = int> struct A; template <int N = 123> struct B; struct S { template <typename T = int> void x(); void y(int n = 123); }; struct nontrivial { nontrivial(int); }; void h(nontrivial p = nontrivial(123));