1 // PR c++/86946, DR 1321
2 // { dg-do compile { target c++11 } }
5 template <long> class e {};
6 template <class T> e<sizeof(d(T{}, T{}))> d(...);
7 template <class T> e<d(T{}, T{})> d(...);
9 template <class T, class U> constexpr T d2(T, U) { return 42; }
10 template <class T> e<d2(T{}, T{})> d2(...);
11 template <class T> e<d2(T{}, T{})> d2(...);
13 template <typename a, typename c> a d3(a, c);
14 template <class T> e<sizeof(d3(T{}, T{}))> d3(...);
15 template <class T> e<sizeof(d3(T{}, T{}))> d3(...);