From 046d853d63d6b51361abe269e8bc15f8d31dd652 Mon Sep 17 00:00:00 2001 From: Dan Marsden Date: Sun, 8 Jul 2007 14:26:01 +0000 Subject: [PATCH] fixing issues with fusion zip_view size on intel [SVN r38167] --- include/boost/fusion/iterator/distance.hpp | 10 +++++++--- include/boost/fusion/sequence/intrinsic/size.hpp | 9 +++++++-- .../fusion/sequence/view/zip_view/detail/size_impl.hpp | 5 +++-- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/include/boost/fusion/iterator/distance.hpp b/include/boost/fusion/iterator/distance.hpp index 897bd1de..44fc4292 100644 --- a/include/boost/fusion/iterator/distance.hpp +++ b/include/boost/fusion/iterator/distance.hpp @@ -61,9 +61,13 @@ namespace boost { namespace fusion { template struct distance - : extension::distance_impl::type>:: - template apply - {}; + : extension::distance_impl::type>:: + template apply + { + typedef typename extension::distance_impl::type>:: + template apply::type distance_application; + BOOST_STATIC_CONSTANT(int, value = distance_application::value); + }; } template diff --git a/include/boost/fusion/sequence/intrinsic/size.hpp b/include/boost/fusion/sequence/intrinsic/size.hpp index c94f9ec0..74e3f53a 100644 --- a/include/boost/fusion/sequence/intrinsic/size.hpp +++ b/include/boost/fusion/sequence/intrinsic/size.hpp @@ -53,8 +53,13 @@ namespace boost { namespace fusion template struct size : extension::size_impl::type>:: - template apply - {}; + template apply + + { + typedef typename extension::size_impl::type>:: + template apply::type size_application; + BOOST_STATIC_CONSTANT(int, value = size_application::value); + }; } template diff --git a/include/boost/fusion/sequence/view/zip_view/detail/size_impl.hpp b/include/boost/fusion/sequence/view/zip_view/detail/size_impl.hpp index aeb6d5e3..70798d28 100644 --- a/include/boost/fusion/sequence/view/zip_view/detail/size_impl.hpp +++ b/include/boost/fusion/sequence/view/zip_view/detail/size_impl.hpp @@ -25,8 +25,9 @@ namespace boost { namespace fusion { { template struct apply - : Sequence::size - {}; + { + typedef typename Sequence::size type; + }; }; } }}