1 | // General vectors of numbers. |
---|---|
2 | |
3 | #ifndef _CL_GV_NUMBER_H |
4 | #define _CL_GV_NUMBER_H |
5 | |
6 | #include "cln/number.h" |
7 | #include "cln/GV.h" |
8 | |
9 | namespace cln { |
10 | |
11 | typedef cl_heap_GV<cl_number> cl_heap_GV_number; |
12 | |
13 | struct cl_GV_number : public cl_GV<cl_number,cl_GV_any> { |
14 | public: |
15 | // Constructors. |
16 | cl_GV_number (); |
17 | cl_GV_number (const cl_GV_number&); |
18 | explicit cl_GV_number (std::size_t len); |
19 | // Assignment operators. |
20 | cl_GV_number& operator= (const cl_GV_number&); |
21 | // Private pointer manipulations. |
22 | cl_GV_number (cl_heap_GV_number* p) : cl_GV<cl_number,cl_GV_any> (p) {} |
23 | cl_GV_number (cl_private_thing p) : cl_GV<cl_number,cl_GV_any> (p) {} |
24 | }; |
25 | inline cl_GV_number::cl_GV_number (const cl_GV_number& x) : cl_GV<cl_number,cl_GV_any> (as_cl_private_thing(x)) {} |
26 | CL_DEFINE_ASSIGNMENT_OPERATOR(cl_GV_number,cl_GV_number) |
27 | extern cl_heap_GV_number* cl_make_heap_GV_number (std::size_t len); |
28 | inline cl_GV_number::cl_GV_number (std::size_t len) |
29 | : cl_GV<cl_number,cl_GV_any> (cl_make_heap_GV_number(len)) {} |
30 | |
31 | // Private pointer manipulations. Never throw away a `struct cl_heap_GV_number *'! |
32 | extern const cl_GV_number cl_null_GV_number; |
33 | inline cl_GV_number::cl_GV_number () |
34 | : cl_GV<cl_number,cl_GV_any> ((cl_heap_GV_number*) cl_null_GV_number) {} |
35 | class cl_GV_number_init_helper |
36 | { |
37 | static int count; |
38 | public: |
39 | cl_GV_number_init_helper(); |
40 | ~cl_GV_number_init_helper(); |
41 | }; |
42 | static cl_GV_number_init_helper cl_GV_number_init_helper_instance; |
43 | |
44 | // Copy a vector. |
45 | extern const cl_GV_number copy (const cl_GV_number&); |
46 | |
47 | // Debugging support. |
48 | #ifdef CL_DEBUG |
49 | extern int cl_GV_number_debug_module; |
50 | CL_FORCE_LINK(cl_GV_number_debug_dummy, cl_GV_number_debug_module) |
51 | #endif |
52 | |
53 | } // namespace cln |
54 | |
55 | #endif /* _CL_GV_NUMBER_H */ |
56 |