| // { 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); |