| // 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>; |
| |
| template<typename ...T> void take_nondependent_pack(int (...arr)[sizeof(sizeof(T))]); |
| |
| template<typename T> using hide = int; |
| template<typename ...T> void take_nondependent_pack_2(outer<hide<T>...>); |