diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/template/defarg5.C')
-rw-r--r-- | gcc/testsuite/g++.dg/template/defarg5.C | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/template/defarg5.C b/gcc/testsuite/g++.dg/template/defarg5.C new file mode 100644 index 000000000..b43637416 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/defarg5.C @@ -0,0 +1,25 @@ +// { 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); |