view gcc/testsuite/g++.dg/template/sfinae1.C @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
line wrap: on
line source

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