sl@0: sl@0: #ifndef BOOST_MPL_JOINT_VIEW_HPP_INCLUDED sl@0: #define BOOST_MPL_JOINT_VIEW_HPP_INCLUDED sl@0: sl@0: // Copyright Aleksey Gurtovoy 2000-2004 sl@0: // sl@0: // Distributed under the Boost Software License, Version 1.0. sl@0: // (See accompanying file LICENSE_1_0.txt or copy at sl@0: // http://www.boost.org/LICENSE_1_0.txt) sl@0: // sl@0: // See http://www.boost.org/libs/mpl for documentation. sl@0: sl@0: // $Source: /cvsroot/boost/boost/boost/mpl/joint_view.hpp,v $ sl@0: // $Date: 2004/10/02 19:08:57 $ sl@0: // $Revision: 1.8 $ sl@0: sl@0: #include sl@0: #include sl@0: #include sl@0: #include sl@0: #include sl@0: sl@0: namespace boost { namespace mpl { sl@0: sl@0: namespace aux { sl@0: struct joint_view_tag; sl@0: } sl@0: sl@0: template<> sl@0: struct size_impl< aux::joint_view_tag > sl@0: { sl@0: template < typename JointView > struct apply sl@0: : plus< sl@0: size sl@0: , size sl@0: > sl@0: {}; sl@0: }; sl@0: sl@0: template< sl@0: typename BOOST_MPL_AUX_NA_PARAM(Sequence1_) sl@0: , typename BOOST_MPL_AUX_NA_PARAM(Sequence2_) sl@0: > sl@0: struct joint_view sl@0: { sl@0: typedef typename mpl::begin::type first1_; sl@0: typedef typename mpl::end::type last1_; sl@0: typedef typename mpl::begin::type first2_; sl@0: typedef typename mpl::end::type last2_; sl@0: sl@0: // agurt, 25/may/03: for the 'size_traits' implementation above sl@0: typedef Sequence1_ sequence1_; sl@0: typedef Sequence2_ sequence2_; sl@0: sl@0: typedef joint_view type; sl@0: typedef aux::joint_view_tag tag; sl@0: typedef joint_iter begin; sl@0: typedef joint_iter end; sl@0: }; sl@0: sl@0: BOOST_MPL_AUX_NA_SPEC(2, joint_view) sl@0: sl@0: }} sl@0: sl@0: #endif // BOOST_MPL_JOINT_VIEW_HPP_INCLUDED