summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/template/sfinae1.C
blob: 47db4115452a4418861175dad4654d29d1e5d424 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// PR c++/14337

template <bool> struct Constraint; 
template <>     struct Constraint<true> { typedef int Result; }; 
 
template <typename T> 
struct IsInt      { static const bool value = false; }; 
 
template <> 
struct IsInt<int> { static const bool value = true; }; 
 
template <typename T> 
typename Constraint<IsInt<T>::value>::Result foo(T); 
 
template <typename T> 
typename Constraint<!IsInt<T>::value>::Result foo(T); 
 
template <typename> 
void bar() { 
    foo(1); 
}