]>
Commit | Line | Data |
---|---|---|
45516216 | 1 | namespace std { |
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 | }; | |
10 | template < typename _Tp > class allocator:public new_allocator < _Tp > | |
11 | { | |
12 | }; | |
13 | } | |
14 | ||
15 | namespace boost { | |
16 | template < class T, int N > class array { | |
17 | }; | |
18 | template < typename _Tp, typename _Alloc > struct _Vector_base { | |
19 | typedef typename _Alloc::template rebind < | |
20 | _Tp >::other _Tp_alloc_type; | |
21 | struct _Vector_impl:public _Tp_alloc_type { | |
22 | _Tp *_M_start; | |
23 | _Tp *_M_finish; | |
24 | _Tp *_M_end_of_storage; | |
25 | _Vector_impl(_Tp_alloc_type const | |
26 | &__a):_Tp_alloc_type(__a), _M_start(0), | |
27 | _M_finish(0), _M_end_of_storage(0) { | |
28 | }}; | |
29 | public: | |
30 | typedef _Alloc allocator_type; | |
31 | _Vector_base(const allocator_type & __a):_M_impl(__a) { | |
32 | } | |
33 | public:_Vector_impl _M_impl; | |
34 | }; | |
35 | template < typename _Tp, typename _Alloc = std::allocator < _Tp > >class vector:protected _Vector_base < _Tp, | |
36 | _Alloc > | |
37 | { | |
38 | typedef _Vector_base < _Tp, _Alloc > _Base; | |
39 | typedef _Alloc allocator_type; | |
40 | public: explicit vector(const allocator_type & __a = allocator_type()):_Base(__a) | |
41 | { | |
42 | } | |
43 | }; | |
44 | } | |
45 | using namespace boost; | |
46 | typedef array < float, 3 > particle; | |
47 | typedef vector < particle > particle_array; | |
48 | main() | |
49 | { | |
50 | float field[512][512][512]; | |
51 | particle_array particles; | |
52 | #pragma omp parallel private(field, particles) | |
53 | while (true) { | |
54 | } | |
55 | } |