1 // PR c++/68926 2 // { dg-do compile { target c++11 } } 3 4 struct true_type { static constexpr bool value = true; }; 5 struct false_type { static constexpr bool value = false; }; 6 7 template<bool Cond> struct enable_if { using type = void; }; 8 template<> struct enable_if<false> { }; 9 10 template<typename T, typename U> struct is_same : false_type { }; 11 template<typename T> struct is_same<T, T> : true_type { }; 12 13 template<typename T> 14 typename enable_if<is_same<int, T>::value>::type 15 func(); 16 17 template<typename T, typename = decltype(func<T>)> 18 true_type test(T); 19 20 false_type test(...); 21 22 int main() 23 { 24 decltype(test(0))::value; // ok 25 decltype(test(0.f))::value; // error 26 } 27