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