He configurado lindas impresoras usando http://wiki.eclipse.org/CDT/User/FAQ#How_can_I_inspect_the_contents_of_STL_containers.3F. Funciona con éxito para vectores y otros contenedores. Sin embargo no puedo llegar a inspeccionar los mapas como en el ejemplo siguiente:Impresoras bonitas para mapas que arrojan un error de tipo
#include <map>
#include <iostream>
using namespace std;
int main()
{
map <int, string> mapIntToString;
map <int, int> mapInt2;
mapIntToString.insert (map <int, string>::value_type (3, "Three"));
mapInt2.insert (map <int, int>::value_type (3, 4));
return 0;
}
me sale el siguiente error al imprimir usando GDB:
(gdb) p mapInt2
$1 = std::map with 1 elementsTraceback (most recent call last):
File "/home/myuser/opt/gdb_printers/python/libstdcxx/v6/printers.py", line 422, in children
rep_type = find_type(self.val.type, '_Rep_type')
File "/home/myuser/opt/gdb_printers/python/libstdcxx/v6/printers.py", line 45, in find_type
raise ValueError, "Cannot find type %s::%s" % (str(orig), name)
ValueError: Cannot find type std::map<int, int, std::less<int>, std::allocator<std::pair<int const, int> > >::_Rep_type
que llegó hasta descubriendo que '_Rep_type' es [al menos en algunos sistemas] un typedef privado en std :: map. perhap esa suposición no siempre es verdad. Te sugiero que avises a los desarrolladores de lindas impresoras. –