
Hite, Christopher wrote:
Joel de Guzman wrote:
No, Fusion does not use MPL's techniques at all. It does not use any scripts to generate the prepreocessed headers. Instead, Fusion uses Wave. Ditto for Phoenix-3. Going beyond the limts is very simple: simply #define BOOST_FUSION_DONT_USE_PREPROCESSED_FILES.
Awesome!!! That's what I was looking for. I didn't find it because of the order gcc's stack of header includes.
Wait sorry, I'm still not out of the woods yet. If I leave out the #if'ed stuff below it doesn't compile. It's still much better than it was before, but it seems like I shouldn't have to do this either. #define BOOST_FUSION_DONT_USE_PREPROCESSED_FILES #define FUSION_MAX_MAP_SIZE ULTIMATE_N #define FUSION_MAX_VECTOR_SIZE ULTIMATE_N #if 1 // required for some reason #include <boost/fusion/include/vector50.hpp> namespace boost { namespace fusion { struct vector_tag; struct fusion_sequence_tag; struct random_access_traversal_tag; // expand vector41 to vector50 #define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/detail/vector_n.hpp> #define BOOST_PP_ITERATION_LIMITS (51, ULTIMATE_N) #include BOOST_PP_ITERATE() }} #endif #include <boost/fusion/container/vector.hpp> 129 errors: In file included from /fs/tools/L3/boost_1_49_0/boost/fusion/container/vector/vector.hpp:11:0, from /fs/tools/L3/boost_1_49_0/boost/fusion/container/vector.hpp:26, from decode_separate_xetra.cpp:68: /fs/tools/L3/boost_1_49_0/boost/fusion/container/vector/detail/vector_n_chooser.hpp:65:1: error: 'vector70' does not name a type In file included from /fs/tools/L3/boost_1_49_0/boost/preprocessor/iteration/detail/iter/forward1.hpp:302:0, from /fs/tools/L3/boost_1_49_0/boost/fusion/container/vector/detail/vector_n_chooser.hpp:77, from /fs/tools/L3/boost_1_49_0/boost/fusion/container/vector/vector.hpp:11, from /fs/tools/L3/boost_1_49_0/boost/fusion/container/vector.hpp:26, from decode_separate_xetra.cpp:68: /fs/tools/L3/boost_1_49_0/boost/fusion/container/vector/detail/vector_n_chooser.hpp:103:1: error: 'vector51' does not name a type In file included from /fs/tools/L3/boost_1_49_0/boost/preprocessor/iteration/detail/iter/forward1.hpp:307:0, from /fs/tools/L3/boost_1_49_0/boost/fusion/container/vector/detail/vector_n_chooser.hpp:77, from /fs/tools/L3/boost_1_49_0/boost/fusion/container/vector/vector.hpp:11, from /fs/tools/L3/boost_1_49_0/boost/fusion/container/vector.hpp:26, Chris