xref: /minix3/external/bsd/llvm/dist/clang/test/PCH/cxx-variadic-templates.h (revision f4a2713ac843a11c696ec80c0a5e3e5d80b4d338)
1 // PR9073
2 template<typename _Tp>
3 class shared_ptr{
4 public:
5   template<class _Alloc, class ..._Args>
6   static
7   shared_ptr<_Tp>
8   allocate_shared(const _Alloc& __a, _Args&& ...__args);
9 };
10 
11 template<class _Tp>
12 template<class _Alloc, class ..._Args>
13 shared_ptr<_Tp>
allocate_shared(const _Alloc & __a,_Args &&...__args)14 shared_ptr<_Tp>::allocate_shared(const _Alloc& __a, _Args&& ...__args)
15 {
16   shared_ptr<_Tp> __r;
17   return __r;
18 }
19 
20 template<typename...Ts> struct outer {
21   template<Ts...Vs, template<Ts> class ...Cs> struct inner {
22     inner(Cs<Vs>...);
23   };
24 };
25 template struct outer<int, int>;
26