#include <vec_t.h>
class cvec_t {
friend class vec_t; // so vec_t can look at VEC_t
public:
cvec_t();
cvec_t(const cvec_t& v1, const cvec_t& v2);
cvec_t(const void* p, size_t l);
cvec_t(const cvec_t& v, size_t offset, size_t limit);
~cvec_t();
void split(size_t l1, cvec_t& v1, cvec_t& v2);
cvec_t& put(const cvec_t& v, size_t offset, size_t nbytes);
cvec_t& put(const void* p, size_t l);
cvec_t& put(const cvec_t& v);
cvec_t& reset();
cvec_t& set(const cvec_t& v1, const cvec_t& v2);
cvec_t& set(const cvec_t& v);
cvec_t& set(const void* p, size_t l);
cvec_t& set(const cvec_t& v, size_t offset, size_t limit);
size() const;
size_t copy_to(void* p, size_t limit = 0x7fffffff) const;
int cmp(const cvec_t& v, size_t* common_size = 0) const;
int cmp(const void* s, size_t len) const;
static int cmp(const cvec_t& v1, const cvec_t& v2, size_t* common_size = 0) ;
int count() const;
int checksum() const;
void calc_kvl(uint4& h) const;
void init();
is_pos_inf() const;
is_neg_inf() const;
friend inline bool operator<(const cvec_t& v1, const cvec_t& v2);
friend inline bool operator<=(const cvec_t& v1, const cvec_t& v2);
friend inline bool operator>=(const cvec_t& v1, const cvec_t& v2);
friend inline bool operator>(const cvec_t& v1, const cvec_t& v2);
friend inline bool operator==(const cvec_t& v1, const cvec_t& v2);
friend inline bool operator!=(const cvec_t& v1, const cvec_t& v2);
static cvec_t pos_inf;
static cvec_t neg_inf;
class vec_t : public cvec_t {
public:
vec_t();
vec_t(const cvec_t& v1, const cvec_t& v2);
vec_t(const void* p, size_t l);
vec_t(const vec_t& v, size_t offset, size_t limit);
/*
* copy_from() does not change vec_t itself, but overwrites
* the data area to which the vec points
* (temporarily made const for VAS compatibility)
*/
const vec_t& copy_from(
const void* p,
size_t limit,
size_t offset = 0) const; // offset tells where
//in the vec to begin to copy
vec_t& copy_from(const cvec_t& v);
vec_t& copy_from(
const cvec_t& v,
size_t offset, // offset in v
size_t limit, // # bytes
size_t myoffset = 0); // offset in this
void* ptr(int index) const;
size_t len(int index) const;
static vec_t& pos_inf;
static vec_t& neg_inf;
};
TODO