1 // { dg-do compile } 2 3 // Origin: Ivan Godard <igodard@pacbell.net> 4 // Wolfgang Bangerth <bangerth@dealii.org> 5 6 // PR c++/17344: Substitution failure is not an error 7 // for default template argument 8 9 template <class> struct intTraits; 10 11 template<> struct intTraits<int> { 12 static const int i = 0; 13 }; 14 15 template<typename E, E i = intTraits<E>::i> struct A {}; 16 17 struct S { 18 template <template <typename> class X> S(X<void>); 19 }; 20 21 int bar(S); 22 int bar(A<int,0>); 23 24 A<int> bed; 25 int i = bar(bed); 26