Im getting there, thanks for your help.
One thing that Im getting problems is the definition of the ColorMap.
typedef boost::default_color_type Color;
typedef boost::color_traits<Color> color_traits;
typedef boost::shared_array_property_map<Color> ColorMap;
ColorMap colorMap(boost::num_vertices(m_ugraph), indexMap);
###
error: wrong number of template arguments (1, should be 2)
In file included from /usr/include/boost/graph/named_function_params.hpp:25:0,
from /usr/include/boost/graph/breadth_first_search.hpp:23,
from ../graph.h:22,
from ../graph.cpp:1:
/usr/include/boost/property_map/shared_array_property_map.hpp:19:7: error: provided for 'template<class T, class IndexMap> class boost::shared_array_property_map'
../graph.cpp:1064:69: error: invalid type in declaration before ';' token
../graph.cpp:1065:70: error: expression list treated as compound expression in initializer [-fpermissive]
../graph.cpp:1065:70: error: cannot convert 'IndexMap {aka boost::vec_adj_list_vertex_id_map<VertexProperties, long unsigned int>}' to 'ColorMap {aka int}' in initialization
../graph.cpp:1089:44: error: no matching function for call to 'put(ColorMap&, boost::graph_traits<boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS, VertexProperties, EdgeProperties> >::vertex_descriptor&, Color&)'