From: Christopher S. <mr....@on...> - 2009-11-03 15:45:20
|
I ran into two problems when compiling Spirit 2 with the upcoming c++0x port of Fusion. Spirit relies on Fusion eliminating trailing fusion::void_ - types in the container generation metafunctions. If native variadic templates are supported by the compiler, this will not be done though. In fact, the fusion::void_ type is undocumented, pretty much unused and I would like to remove the <boost/fusion/support/void.hpp> / <boost/fusion/include/void.hpp> files and move the type in the fusion::detail namespace. As the relevant fusion::result_of::make_vector invocations are wrapped through spirit::detail::make_vector I suggest to intercept a spirit-specific 'unused' type there. fusion::result_of::make_vector will return a plain variadic vector type if native variadic templates are present. Unfortunately Spirit has tons of template specialisations with the numbered vector whereas the actual template types are instantiated with the result type of the generation metafunction. I suggest to choose the right form when hardcode via a simple macro. Is there any chance of getting these issues addressed? Thanks a lot -Christopher |