1 // Like non-dependent16a.C, but where A is a template.
3 // { dg-do compile { target c++11 } }
7 template<class T> static void f();
8 template<class T> static auto f() -> decltype(f<void>(), 1, *T());
9 template<class T> static auto f() -> decltype(f<void>(), 2, *T());
10 template<class T> static auto f() -> decltype(f<void>(), 3, *T());
11 template<class T> static auto f() -> decltype(f<void>(), 4, *T());
12 template<class T> static auto f() -> decltype(f<void>(), 5, *T());
13 template<class T> static auto f() -> decltype(f<void>(), 6, *T());
14 template<class T> static auto f() -> decltype(f<void>(), 7, *T());
15 template<class T> static auto f() -> decltype(f<void>(), 8, *T());
16 template<class T> static auto f() -> decltype(f<void>(), 9, *T());
17 template<class T> static auto f() -> decltype(f<void>(), 10, *T());
18 template<class T> static auto f() -> decltype(f<void>(), 11, *T());
19 template<class T> static auto f() -> decltype(f<void>(), 12, *T());
20 template<class T> static auto f() -> decltype(f<void>(), 13, *T());
21 template<class T> static auto f() -> decltype(f<void>(), 14, *T());
22 template<class T> static auto f() -> decltype(f<void>(), 15, *T());
23 template<class T> static auto f() -> decltype(f<void>(), 16, *T());
24 template<class T> static auto f() -> decltype(f<void>(), 17, *T());
25 template<class T> static auto f() -> decltype(f<void>(), 18, *T());
26 template<class T> static auto f() -> decltype(f<void>(), 19, *T());
27 template<class T> static auto f() -> decltype(f<void>(), 20, *T());
28 template<class T> static auto f() -> decltype(f<void>(), 21, *T());
29 template<class T> static auto f() -> decltype(f<void>(), 22, *T());
30 template<class T> static auto f() -> decltype(f<void>(), 23, *T());
31 template<class T> static auto f() -> decltype(f<void>(), 24, *T());
32 template<class T> static auto f() -> decltype(f<void>(), 25, *T());