18struct iterator_value_node
20 using parent_type = ParentT;
21 using size_type = SizeT;
23 mdds::mtv::element_t type;
28 iterator_value_node(
const parent_type* parent, size_type block_index)
29 : type(mdds::mtv::element_type_empty), position(0), size(0), data(
nullptr), __private_data(parent, block_index)
32 void swap(iterator_value_node& other)
34 std::swap(type, other.type);
35 std::swap(position, other.position);
36 std::swap(size, other.size);
37 std::swap(data, other.data);
39 __private_data.swap(other.__private_data);
44 const parent_type* parent;
45 size_type block_index;
47 private_data() : parent(
nullptr), block_index(0)
49 private_data(
const parent_type* _parent, size_type _block_index) : parent(_parent), block_index(_block_index)
52 void swap(private_data& other)
54 std::swap(parent, other.parent);
55 std::swap(block_index, other.block_index);
60 bool operator==(
const iterator_value_node& other)
const
62 return type == other.type && position == other.position && size == other.size && data == other.data &&
63 __private_data.parent == other.__private_data.parent &&
64 __private_data.block_index == other.__private_data.block_index;
69 return !operator==(other);