/** * Set value that pointed by iterator. */ void iterator_set_value(iterator_t it_iter, const void* cpv_value) { assert(cpv_value != NULL); assert(_iterator_is_valid(it_iter)); assert(_iterator_limit_type(it_iter, _OUTPUT_ITERATOR)); switch (it_iter._t_containertype) { case _VECTOR_CONTAINER: _vector_iterator_set_value(it_iter, cpv_value); break; case _LIST_CONTAINER: _list_iterator_set_value(it_iter, cpv_value); break; case _DEQUE_CONTAINER: _deque_iterator_set_value(it_iter, cpv_value); break; /* case _SLIST_CONTAINER: _slist_iterator_set_value(it_iter, cpv_value); break; */ case _BASIC_STRING_CONTAINER: _basic_string_iterator_set_value(it_iter, cpv_value); break; default: assert(false); break; } }
/** * Set iterator reference data. */ void _basic_string_iterator_set_value(basic_string_iterator_t it_iter, const void* cpv_value) { assert(_GET_BASIC_STRING_CONTAINER_TYPE(it_iter) == _BASIC_STRING_CONTAINER); _GET_VECTOR_CONTAINER_TYPE(it_iter) = _VECTOR_CONTAINER; _vector_iterator_set_value(it_iter, cpv_value); _GET_BASIC_STRING_CONTAINER_TYPE(it_iter) = _BASIC_STRING_CONTAINER; }