forked from OctaForge/libostd
make hash/bucket ranges properly convertible
parent
ad0521bdfa
commit
d8bf7b9c69
|
@ -50,6 +50,12 @@ public:
|
||||||
HashRange(Chain **beg, Chain **end, Chain *node): p_beg(beg), p_end(end),
|
HashRange(Chain **beg, Chain **end, Chain *node): p_beg(beg), p_end(end),
|
||||||
p_node(node) {}
|
p_node(node) {}
|
||||||
|
|
||||||
|
template<typename U>
|
||||||
|
HashRange(const HashRange<U> &v, octa::EnableIf<
|
||||||
|
octa::IsConvertible<U, T>::value, bool
|
||||||
|
> = true): p_beg(*((Chain ***)&v)), p_end(*(((Chain ***)&v) + 1)),
|
||||||
|
p_node(*(((Chain **)&v) + 2)) {}
|
||||||
|
|
||||||
HashRange &operator=(const HashRange &v) {
|
HashRange &operator=(const HashRange &v) {
|
||||||
p_beg = v.p_beg;
|
p_beg = v.p_beg;
|
||||||
p_end = v.p_end;
|
p_end = v.p_end;
|
||||||
|
@ -84,6 +90,11 @@ public:
|
||||||
BucketRange(Chain *node): p_node(node) {}
|
BucketRange(Chain *node): p_node(node) {}
|
||||||
BucketRange(const BucketRange &v): p_node(v.p_node) {}
|
BucketRange(const BucketRange &v): p_node(v.p_node) {}
|
||||||
|
|
||||||
|
template<typename U>
|
||||||
|
BucketRange(const BucketRange<U> &v, octa::EnableIf<
|
||||||
|
octa::IsConvertible<U, T>::value, bool
|
||||||
|
> = true): p_node(*((Chain **)&v)) {}
|
||||||
|
|
||||||
BucketRange &operator=(const BucketRange &v) {
|
BucketRange &operator=(const BucketRange &v) {
|
||||||
p_node = v.p_node;
|
p_node = v.p_node;
|
||||||
return *this;
|
return *this;
|
||||||
|
|
Loading…
Reference in New Issue