2013-06-12 32 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);