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