initial import
[ICEs.git] / 198528 / ice.ii.7
1 template < class T, int N > class array;
2 template < typename _Tp > class new_allocator {
3 public:
4 template < typename _Tp1 > struct rebind {
5 typedef new_allocator < _Tp1 > other;
6 };
7 ~new_allocator() throw() {}
8 };
9 template < typename _Tp > class allocator:public new_allocator < _Tp >
10 {
11 };
12 template < typename _Tp, typename _Alloc > struct _Vector_base {
13 typedef typename _Alloc::template rebind < _Tp >::other _Tp_alloc_type;
14 struct _Vector_impl:public _Tp_alloc_type {
15 _Vector_impl(_Tp_alloc_type const
16 &__a):_Tp_alloc_type(__a)
17 {
18 }};
19 public:
20 _Vector_base(const _Alloc & __a):_M_impl(__a) { }
21 public:
22 _Vector_impl _M_impl;
23 };
24 template < typename _Tp, typename _Alloc = allocator < _Tp > >class vector:protected _Vector_base < _Tp,
25 _Alloc >
26 {
27 typedef _Vector_base < _Tp, _Alloc > _Base;
28 public:
29 explicit vector(const _Alloc & __a
30 = _Alloc()):_Base(__a)
31 {
32 }
33 };
34 main()
35 {
36 float field;
37 vector < array < float, 1 > > particles;
38 #pragma omp parallel private(field, particles)
39 ;
40 }