47 case _Block::block_type:
48 return _Block::create_block(init_size);
52 return element_block_func::create_new_block(type, init_size);
57 switch (get_block_type(block))
59 case _Block::block_type:
60 return _Block::clone_block(block);
64 return element_block_func::clone_block(block);
72 switch (get_block_type(*p))
74 case _Block::block_type:
75 _Block::delete_block(p);
78 element_block_func::delete_block(p);
84 switch (get_block_type(block))
86 case _Block::block_type:
87 _Block::resize_block(block, new_size);
90 element_block_func::resize_block(block, new_size);
96 switch (get_block_type(block))
98 case _Block::block_type:
99 _Block::print_block(block);
102 element_block_func::print_block(block);
108 switch (get_block_type(block))
110 case _Block::block_type:
111 _Block::erase_block(block, pos);
114 element_block_func::erase(block, pos);
120 switch (get_block_type(block))
122 case _Block::block_type:
123 _Block::erase_block(block, pos, size);
126 element_block_func_base::erase(block, pos, size);
132 switch (get_block_type(dest))
134 case _Block::block_type:
135 _Block::append_values_from_block(dest, src);
138 element_block_func_base::append_values_from_block(dest, src);
142 static void append_values_from_block(
145 switch (get_block_type(dest))
147 case _Block::block_type:
148 _Block::append_values_from_block(dest, src, begin_pos, len);
151 element_block_func_base::append_values_from_block(dest, src, begin_pos, len);
155 static void assign_values_from_block(
158 switch (get_block_type(dest))
160 case _Block::block_type:
161 _Block::assign_values_from_block(dest, src, begin_pos, len);
164 element_block_func_base::assign_values_from_block(dest, src, begin_pos, len);
168 static void prepend_values_from_block(
171 switch (get_block_type(dest))
173 case _Block::block_type:
174 _Block::prepend_values_from_block(dest, src, begin_pos, len);
177 element_block_func_base::prepend_values_from_block(dest, src, begin_pos, len);
183 switch (get_block_type(blk1))
185 case _Block::block_type:
186 _Block::swap_values(blk1, blk2, pos1, pos2, len);
189 element_block_func_base::swap_values(blk1, blk2, pos1, pos2, len);
195 if (get_block_type(left) == _Block::block_type)
197 if (get_block_type(right) != _Block::block_type)
200 return _Block::get(left) == _Block::get(right);
202 else if (mtv::get_block_type(right) == _Block::block_type)
205 return element_block_func::equal_block(left, right);
210 switch (get_block_type(block))
212 case _Block::block_type:
213 _Block::overwrite_values(block, pos, len);
222 switch (get_block_type(block))
224 case _Block::block_type:
225 _Block::shrink_to_fit(block);
228 element_block_func::shrink_to_fit(block);
234 switch (get_block_type(block))
236 case _Block::block_type:
237 return _Block::size(block);
239 return element_block_func::size(block);