| // PR c++/87512 | |
| // { dg-do compile { target c++17 } } | |
| template <int, typename T = int> using enable_if_t = int; | |
| template<typename T> struct is_pointer { enum { value = 0 }; }; | |
| template <typename T> | |
| inline constexpr auto IsPtr = is_pointer<T>::value; | |
| class Foo; | |
| class Bar; | |
| template <typename T1, typename T2> | |
| void foo(T1, T2); | |
| template <typename T> | |
| enable_if_t<IsPtr<T>> foo(T, Foo); | |
| template <> | |
| void foo<Bar>(Bar, Bar); |