2013-06-12 60 views
0

我有下面的代碼錯誤使用屬性映射在Boost圖庫

typedef property<symbol_t,string,property <message_t,string> > edge_properties; 
typedef property<vertex_name_t,string> vertex_properties; 
typedef adjacency_list<listS,listS,directedS,vertex_properties,edge_properties> Graph; 

Graph automata; 
property_map(Graph,vertex_name_t) :: type state_name_map = get(vertex_name_t,automata); 

這應該工作,但我得到了以下錯誤

error: ISO C++ forbids declaration of ‘property_map’ with no type [-fpermissive] 
xml2automata.cpp:30:37: error: expected ‘;’ at end of member declaration 
xml2automata.cpp:30:39: error: invalid use of template-name ‘boost::type’ without an 
argument list    

回答

1

property_map(Graph,vertex_name_t) :: type state_name_map = 
     get(vertex_name_t,automata); 

channge的圓括號括起來,因爲這是一個模板。

property_map < Graph,vertex_name_t > :: type state_name_map = 
     get(vertex_name_t,automata);