1f9997a0834e0e0298b04ef044ad2699c727a7979Douglas Gregor// PR9073 2f9997a0834e0e0298b04ef044ad2699c727a7979Douglas Gregortemplate<typename _Tp> 3f9997a0834e0e0298b04ef044ad2699c727a7979Douglas Gregorclass shared_ptr{ 4f9997a0834e0e0298b04ef044ad2699c727a7979Douglas Gregorpublic: 5f9997a0834e0e0298b04ef044ad2699c727a7979Douglas Gregor template<class _Alloc, class ..._Args> 6f9997a0834e0e0298b04ef044ad2699c727a7979Douglas Gregor static 7f9997a0834e0e0298b04ef044ad2699c727a7979Douglas Gregor shared_ptr<_Tp> 8f9997a0834e0e0298b04ef044ad2699c727a7979Douglas Gregor allocate_shared(const _Alloc& __a, _Args&& ...__args); 9f9997a0834e0e0298b04ef044ad2699c727a7979Douglas Gregor}; 10f9997a0834e0e0298b04ef044ad2699c727a7979Douglas Gregor 11f9997a0834e0e0298b04ef044ad2699c727a7979Douglas Gregortemplate<class _Tp> 12f9997a0834e0e0298b04ef044ad2699c727a7979Douglas Gregortemplate<class _Alloc, class ..._Args> 13f9997a0834e0e0298b04ef044ad2699c727a7979Douglas Gregorshared_ptr<_Tp> 14f9997a0834e0e0298b04ef044ad2699c727a7979Douglas Gregorshared_ptr<_Tp>::allocate_shared(const _Alloc& __a, _Args&& ...__args) 15f9997a0834e0e0298b04ef044ad2699c727a7979Douglas Gregor{ 16f9997a0834e0e0298b04ef044ad2699c727a7979Douglas Gregor shared_ptr<_Tp> __r; 17f9997a0834e0e0298b04ef044ad2699c727a7979Douglas Gregor return __r; 18f9997a0834e0e0298b04ef044ad2699c727a7979Douglas Gregor} 196964b3f80ce1ba489e7e25e7cd58062699af9b0cRichard Smith 206964b3f80ce1ba489e7e25e7cd58062699af9b0cRichard Smithtemplate<typename...Ts> struct outer { 216964b3f80ce1ba489e7e25e7cd58062699af9b0cRichard Smith template<Ts...Vs, template<Ts> class ...Cs> struct inner { 226964b3f80ce1ba489e7e25e7cd58062699af9b0cRichard Smith inner(Cs<Vs>...); 236964b3f80ce1ba489e7e25e7cd58062699af9b0cRichard Smith }; 246964b3f80ce1ba489e7e25e7cd58062699af9b0cRichard Smith}; 256964b3f80ce1ba489e7e25e7cd58062699af9b0cRichard Smithtemplate struct outer<int, int>; 26