// PR9073 template<typename _Tp> class shared_ptr{ public: template<class _Alloc, class ..._Args> static shared_ptr<_Tp> allocate_shared(const _Alloc& __a, _Args&& ...__args); }; template<class _Tp> template<class _Alloc, class ..._Args> shared_ptr<_Tp> shared_ptr<_Tp>::allocate_shared(const _Alloc& __a, _Args&& ...__args) { shared_ptr<_Tp> __r; return __r; } template<typename...Ts> struct outer { template<Ts...Vs, template<Ts> class ...Cs> struct inner { inner(Cs<Vs>...); }; }; template struct outer<int, int>;