python class StringVisualizer: def to_string (self, v): # FIXME: catch any exceptions accessing bogus memory data = v.element ("_M_dataplus") return str (data.element ("_M_p")) class VectorVisualizer: def children (self, v): result = [] impl = v.element ('_M_impl') start = impl.element ('_M_start') finish = impl.element ('_M_finish') current = start index = 0 while not current.equals(finish): result.append((str(index), current.dereference())) current = current.increment(1) index = index + 1 return result end