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