blob: 19ef57fa9eab3f9c04cc1b6058eed5a74b6633c5 [file] [log] [blame]
// PR c++/65133
// { dg-do compile { target c++11 } }
template<bool, typename Tp = void>
struct enable_if { };
template<typename Tp>
struct enable_if<true, Tp> { typedef Tp type; };
template <int I>
struct count
{
using type = typename count<I-1>::type;
};
template <>
struct count<0>
{
using type = void;
};
template <int I>
auto foo(typename enable_if<(I>=0)>::type *
= nullptr) -> typename count<I>::type { }
template <int I>
void foo(typename enable_if<(I<0)>::type * = nullptr) { }
int main()
{
foo<2>();
foo<-1>();
}