2013-07-16 51 views
0

爲什麼boost :: assign :: map_list_of yield an_enum不是類類型錯誤? 例如boost :: assign :: map_list_of枚舉類型的值

exp.aggregates = (
         boost::assign::map_list_of 
         ("a",static_cast<an_enum>(3)),    
         ("b",static_cast<an_enum>(4)), 
         ("c",static_cast<an_enum>(0)) 
       ).operator ltr_and_enum() 

回答

0

你可以改變它,看看會發生什麼嗎?

map<string, an_enum> myMap = boost::assign::map_list_of 
        ("a",static_cast<an_enum>(3)),    
        ("b",static_cast<an_enum>(4)), 
        ("c",static_cast<an_enum>(0))); 

exp.aggregates = myMap.operator ltr_and_enum(); 
+0

http://coliru.stacked-crooked.com/view?id=b4a364831ac3555bf651082cd7991e1b-f674c1a6d04c632b71a62362c0ccfc51 – programmist

+0

所以它的工作原理。那麼任何人都可以解釋什麼時候可能會收到這樣的錯誤(來自第一篇文章)? – programmist

+0

我相信map_list_of需要放入地圖中,而您希望它像list_of一樣工作,請參閱http://www.boost.org/doc/libs/1_40_0/libs/assign/doc/index.html# map_list_of – madnut