2013-11-15 3 views
2

Я пытаюсь преобразовать структуру пепла в C++ для включения в мой проект, моя среда разработки - Vista 32 и Visual C++ 2008 Express, и я использую boost_1_37_0 ЛИЭС, им не планирует модернизировать environemt, пока я не достичь каких-то результатов ...boost :: fusion accessing key type of joint view as map

Дано:

typedef Component Pcomponent; 
typedef WaitForstart2 Pcomponent2; 
typedef boost::fusion::pair<ComponentWONTEXISTS,Pcomponent> component_pair1; 
typedef boost::fusion::pair<WaitForstart2,Pcomponent2> component_pair2; 

typedef boost::fusion::map<component_pair1> componentDictType1; 
typedef boost::fusion::map<component_pair2> componentDictType2; 

typedef boost::fusion::joint_view<componentDictType1, componentDictType2>joincomponentDictType; 

Я не в состоянии решить, как получить доступ на типов, используя at_key

boost::fusion::at_key<ComponentWONTEXISTS, dictionaryjoint>(boost::fusion::as_map(dictionaryjoint)); 

Спасибо,

PS: Я на спешке, но я буду пытаться переформатировать вопрос на некоторое время

С уважением,

+0

Возможно, вы должны ответить на свой вопрос. – llonesmiz

ответ

1

Это смешно, но я думаю, что мне удалось найти решение:

typedef boost::fusion::result_of::as_map<boost::fusion::joint_view<componentDictType1, componentDictType2> >::type MAPTYPE; 
    MAPTYPE aDict; 
    Pcomponent ptempj3 = boost::fusion::at_key<ComponentWONTEXISTS,MAPTYPE>(aDict);