c++ - generate fusion::vector from mpl::vector -


फ्यूजन :: वेक्टर से mpl :: vector उत्पन्न करने के तरीके ? mpl :: vector से fusion :: vector ?

  BOOST_MPL_ASSERT ((is_same & lt; fusion :: vector & lt; int, char & gt) से कैसे उत्पन्न करें? ;, Generate_fusion_vector & lt; mpl :: vector & lt; int, char & gt; & gt; :: प्रकार & gt;)); BOOST_MPL_ASSERT ((is_same & lt; mpl :: vector & lt; int, char & gt ;, gener_mpl_vector & lt; फ्यूजन :: वेक्टर & lt; int, char & gt; & gt; :: प्रकार & gt;));  

मुझे gener_fusion_vector और gener_mpl_vector metafunctions की आवश्यकता है I मैं अपने खुद के मेटाफैंस लिख सकता हूं, लेकिन मुझे संदेह है कि वे पहले से मौजूद हैं।

मुझे fusion :: map सहायता के साथ result_of :: as_map से पहले, लेकिन मौजूदा बढ़ावा (ट्रंक, 1.39 भी) में ऐसी त्रुटि होती है:

  डी: \ पुस्तकालयों \ boost_trunk \ boost / fusion / sequence / intrinsic / size.hpp (56): त्रुटि C2903: 'लागू': प्रतीक न तो एक वर्ग टेम्पलेट और न ही एक फ़ंक्शन टेम्पलेट है D: \ Library \ boost_trunk \ boost / fusion / container / vector / convert.hpp (23): वर्ग टेम्पलेट तात्कालिकता के संदर्भ देखें 'बढ़ावा :: संलयन :: result_of :: size 'संकलन के साथ संकलित किया जा रहा है [सीक्वेंस = बूस्ट :: एमप्ल :: वेक्टर] टेम्पक सीपीपी (71): क्लास टेम्पलेट तत्काल' बढ़ावा :: फ्यूजन :: रिजल्ट_ऑफ :: एएसएवेक्टर 'संकलित किया जा रहा है   

मुझे नहीं पता कि क्या हो रहा है?

संलयन के रूप में कार्यों को एमजीएल प्रकारों को तर्क के रूप में स्वीकार करता है जो आप इसे करने की कोशिश कर सकते हैं:

  BOOS T_MPL_ASSERT ((is_same & LT; संलयन :: वेक्टर & lt; int, char & gt ;, फ्यूजन :: परिणाम_ऑफ :: as_vector & lt; mpl :: vector & lt; int, char & gt; & Gt; :: प्रकार & gt;));  

संपादित करें:

मुझे लगता है कि यह आपके लिए काम नहीं कर रहा है कि आपको फ्यूजन में एमप्ल संगतता को सक्षम करने के लिए कुछ हेडर फाइलें शामिल करनी होंगी।

<पूर्व> #include & lt; boost / fusion / adapted / mpl.hpp & gt; #include & lt; boost / fusion / include / mpl.hpp & gt;

Comments