X-Git-Url: https://ginac.de/CLN/cln.git//cln.git?a=blobdiff_plain;f=include%2Fcln%2FGV_integer.h;h=dcecfdeaa5d4f59c770c03b169842a2e46941f84;hb=HEAD;hp=712c0bd404b2af211b65ffd25b244b1f1406e975;hpb=697c3c7f8041deb0f55b60ece032e58633e0fb83;p=cln.git diff --git a/include/cln/GV_integer.h b/include/cln/GV_integer.h index 712c0bd..dcecfde 100644 --- a/include/cln/GV_integer.h +++ b/include/cln/GV_integer.h @@ -17,7 +17,7 @@ template <> struct cl_heap_GV : cl_heap { cl_GV_inner v; // here room for the elements - sintL maxbits () const; + sintC maxbits () const; }; typedef cl_heap_GV cl_heap_GV_I; @@ -27,13 +27,13 @@ public: cl_GV_I (); cl_GV_I (const cl_GV_I&); // Create a vector of unconstrained integers. - explicit cl_GV_I (uintL len); + explicit cl_GV_I (std::size_t len); // Create a vector of m-bit integers (>=0, <2^m). - cl_GV_I (uintL len, sintL m); + cl_GV_I (std::size_t len, sintC m); // Assignment operators. cl_GV_I& operator= (const cl_GV_I&); // Number m of bits allowed per element (-1 if unconstrained). - sintL maxbits () const + sintC maxbits () const { return ((const cl_heap_GV_I *) pointer)->maxbits(); } @@ -43,18 +43,25 @@ public: }; inline cl_GV_I::cl_GV_I (const cl_GV_I& x) : cl_GV (as_cl_private_thing(x)) {} CL_DEFINE_ASSIGNMENT_OPERATOR(cl_GV_I,cl_GV_I) -extern cl_heap_GV_I* cl_make_heap_GV_I (uintL len); -inline cl_GV_I::cl_GV_I (uintL len) +extern cl_heap_GV_I* cl_make_heap_GV_I (std::size_t len); +inline cl_GV_I::cl_GV_I (std::size_t len) : cl_GV (cl_make_heap_GV_I(len)) {} -extern cl_heap_GV_I* cl_make_heap_GV_I (uintL len, sintL m); -inline cl_GV_I::cl_GV_I (uintL len, sintL m) +extern cl_heap_GV_I* cl_make_heap_GV_I (std::size_t len, sintC m); +inline cl_GV_I::cl_GV_I (std::size_t len, sintC m) : cl_GV (cl_make_heap_GV_I(len,m)) {} // Private pointer manipulations. Never throw away a `struct cl_heap_GV_I *'! extern const cl_GV_I cl_null_GV_I; inline cl_GV_I::cl_GV_I () : cl_GV ((cl_heap_GV_I*) cl_null_GV_I) {} -CL_REQUIRE(cl_GV_I) +class cl_GV_I_init_helper +{ + static int count; +public: + cl_GV_I_init_helper(); + ~cl_GV_I_init_helper(); +}; +static cl_GV_I_init_helper cl_GV_I_init_helper_instance; // Copy a vector. extern const cl_GV_I copy (const cl_GV_I&);