// { dg-do compile } // Origin: Ivan Godard <igodard@pacbell.net> // Wolfgang Bangerth <bangerth@dealii.org> // PR c++/17344: Substitution failure is not an error // for default template argument template <class> struct intTraits; template<> struct intTraits<int> { static const int i = 0; }; template<typename E, E i = intTraits<E>::i> struct A {}; struct S { template <template <typename> class X> S(X<void>); }; int bar(S); int bar(A<int,0>); A<int> bed; int i = bar(bed);