1*67e74705SXin Li // PR9073 2*67e74705SXin Li template<typename _Tp> 3*67e74705SXin Li class shared_ptr{ 4*67e74705SXin Li public: 5*67e74705SXin Li template<class _Alloc, class ..._Args> 6*67e74705SXin Li static 7*67e74705SXin Li shared_ptr<_Tp> 8*67e74705SXin Li allocate_shared(const _Alloc& __a, _Args&& ...__args); 9*67e74705SXin Li }; 10*67e74705SXin Li 11*67e74705SXin Li template<class _Tp> 12*67e74705SXin Li template<class _Alloc, class ..._Args> 13*67e74705SXin Li shared_ptr<_Tp> allocate_shared(const _Alloc & __a,_Args &&...__args)14*67e74705SXin Lishared_ptr<_Tp>::allocate_shared(const _Alloc& __a, _Args&& ...__args) 15*67e74705SXin Li { 16*67e74705SXin Li shared_ptr<_Tp> __r; 17*67e74705SXin Li return __r; 18*67e74705SXin Li } 19*67e74705SXin Li 20*67e74705SXin Li template<typename...Ts> struct outer { 21*67e74705SXin Li template<Ts...Vs, template<Ts> class ...Cs> struct inner { 22*67e74705SXin Li inner(Cs<Vs>...); 23*67e74705SXin Li }; 24*67e74705SXin Li }; 25*67e74705SXin Li template struct outer<int, int>; 26