1 // PR c++/87366 2 // { dg-do compile { target c++11 } } 3 4 struct A {}; 5 struct B {}; 6 7 template <typename T> struct wrapper {}; 8 9 template <typename> struct enable_if_A { }; 10 template<> struct enable_if_A<A> { using type = void; }; 11 12 template <typename T, typename = typename enable_if_A<T>::type> using ok_t = T; 13 14 template <typename T> void not_even_called(wrapper<const ok_t<T>&> a); 15 16 template <typename T> int called(wrapper<const T&> a); 17 18 void test(wrapper<const B&>& val) 19 { 20 called(val); 21 } 22