1 // PR c++/54575 2 // { dg-do compile { target c++11 } } 3 4 template<typename _From, typename _To> 5 struct is_convertible { static const bool value = true; }; 6 7 template<bool> struct enable_if { }; 8 template<> struct enable_if<true> { typedef int type; }; 9 10 template<typename _InIter> 11 using _RequireInputIter 12 = typename enable_if<is_convertible<_InIter,bool>::value>::type; 13 14 template<typename _Tp> struct X { 15 template<typename _InputIterator, 16 typename = _RequireInputIter<_InputIterator>> 17 void insert(_InputIterator) {} 18 }; 19 20 template<typename> void foo() { 21 X<int> subdomain_indices; 22 subdomain_indices.insert(0); 23 } 24