Помогите, плз, разобраться.
Имеется граф:
Код:
typedef boost::adjacency_list < 
  listS, //list vertex
  listS, //list edge
  directedS, 
  property < vertex_name_t, int, // num_nod
  property < vertex_index_t, string > >, //POINT( X Y )
  property < edge_weight_t, float > //distance edge
> r_graph_t;
Где-то в коде
Код:
...
r_graph_t * rg = new r_graph_t(N)
...
//заполняем граф
...
//создаем строку, содержащую значение свойства vertex_index вершины
...
   std::string * tmp_str = new string( "tra_ta_ta" );
/*строка 293*/   tmp_str->append( boost::get( vertex_index, *rg, vri1->vd ));
где 

 - имя свойства,

 - граф,

 - дескриптор вершины.
Компилируется и работает.
Теперь я меняю тип хранилища для 
граней графа на 

 ( вместо 

 edge )
После этого компилятор ругается следующим образом:
Код:
a_0.cc:293: error: invalid conversion from `size_t' to `const char*'
a_0.cc:293: error:   initializing argument 1 of `std::basic_string<_CharT, _Traits, _Alloc>& std::basic_string<_CharT, _Traits, _Alloc>::append(const _CharT*) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]'
Что это значит?
Я поменял тип хранилища для граней. Только и всего. Значение свойства извлекаю из вершины. 
Из руководства по boost graph
Код:
template <typename PropertyTag, typename X>
typename property_traits<
  typename property_map<adjacency_list, 
  PropertyTag>::const_type>::value_type
get( PropertyTag, const adjacency_list& g, X x)
Цитата:
Возвращает значение свойства для 

, где 

 дескриптор вершины или ребра.
На этом моя мысль останавливается.