// PR c++/46129 // The default argument for A::B::operator() should not be required template struct A { struct B { void operator () (const T& d_ = f(T()) ) { } }; }; int main() { A::B b; }