summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/template/defarg5.C
blob: b436374160d0ad5c92532fd3a38d4aae51b4ba7e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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);