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; + }; }; } }}