2 // { dg-do compile { target c++11 } }
5 template <bool, typename> struct c;
6 template <typename> struct d;
10 template <typename> using h = void;
11 template <typename, template <typename> class, typename...> struct detector {};
12 template <template <typename> class i, typename... args>
13 struct detector<h<i<args...>>, i, args...>;
15 template <template <typename> class i, typename... args>
16 using j = g::detector<void, i, args...>;
17 template <bool b, typename k = void> using l = typename a::c<b, k>::m;
18 template <typename> struct conjunction;
20 template <typename k> using n = l<conjunction<a::d<k>>::p>;
22 template <typename k, g::n<k> = true> class o;
25 template <typename k> using q = e::o<k>;
26 void s() { e::j<q, r> f; }