1 // { dg-do compile { target c++11 } }
16 Trial( const F& ff ) : f(ff) { }
17 template <typename... Args>
18 struct Sig { typedef int ResultType; };
20 template <typename... Args>
21 struct Sig<Something,Args...> { typedef int ResultType; };
25 template <typename... Args>
26 typename Sig<Something,Args...>::ResultType operator()(const Something& s, const Args&... args) const
32 template <typename... Args>
33 typename Sig<Args...>::ResultType operator()(const Args&... args) const
43 template <typename... Args>
44 struct Sig { typedef int ResultType; };
46 template <typename... Args>
47 struct Sig<Something,Args...> { typedef int ResultType; };
49 template <typename... Args>
50 int operator()(const Args&... args) const
52 int n = sizeof...(Args);
56 static Trial<Internal>& full() { static Trial<Internal> f; return f; }
59 static Trial<Internal>& internal = Internal::full();
65 n = internal(___,1,2);
68 n = internal(___,1,2,3);
69 n = internal(___,1,2,3,4);