diff --git a/include/boost/mpl/joint_view.hpp b/include/boost/mpl/joint_view.hpp index 199be9a..d76b962 100644 --- a/include/boost/mpl/joint_view.hpp +++ b/include/boost/mpl/joint_view.hpp @@ -1,9 +1,11 @@ -//----------------------------------------------------------------------------- -// boost mpl/joint_view.hpp header file -// See http://www.boost.org for updates, documentation, and revision history. -//----------------------------------------------------------------------------- -// -// Copyright (c) 2000-02 + +#ifndef BOOST_MPL_JOINT_VIEW_HPP_INCLUDED +#define BOOST_MPL_JOINT_VIEW_HPP_INCLUDED + +// + file: boost/mpl/joint_view.hpp +// + last modified: 25/may/03 + +// Copyright (c) 2000-03 // Aleksey Gurtovoy // // Permission to use, copy, modify, distribute and sell this software @@ -13,34 +15,30 @@ // supporting documentation. No representations are made about the // suitability of this software for any purpose. It is provided "as is" // without express or implied warranty. - -#ifndef BOOST_MPL_JOINT_VIEW_HPP_INCLUDED -#define BOOST_MPL_JOINT_VIEW_HPP_INCLUDED +// +// See http://www.boost.org/libs/mpl for documentation. #include "boost/mpl/aux_/joint_iter.hpp" -#include "boost/mpl/begin_end.hpp" -#include "boost/mpl/aux_/void_spec.hpp" #include "boost/mpl/plus.hpp" #include "boost/mpl/size_fwd.hpp" - -#include +#include "boost/mpl/begin_end.hpp" +#include "boost/mpl/aux_/void_spec.hpp" namespace boost { namespace mpl { -namespace aux -{ - struct joint_view_tag; +namespace aux { +struct joint_view_tag; } -template <> +template<> struct size_traits< aux::joint_view_tag > { template < typename JointView > struct algorithm : plus< - size - , size - > + size + , size + > {}; }; @@ -50,23 +48,16 @@ template< > struct joint_view { -#if !BOOST_WORKAROUND(BOOST_MSVC, <= 1200) - private: - friend struct size_traits< aux::joint_view_tag >; -# if BOOST_WORKAROUND(BOOST_MSVC, >= 1301) - template - friend struct size_traits< aux::joint_view_tag >::algorithm; -# endif -#endif - typedef Sequence1_ sequence1; - typedef Sequence2_ sequence2; - typedef typename begin::type first1_; typedef typename end::type last1_; typedef typename begin::type first2_; typedef typename end::type last2_; public: + // agurt, 25/may/03: for the 'size_traits' implementation above + typedef Sequence1_ sequence1_; + typedef Sequence2_ sequence2_; + typedef aux::joint_view_tag tag; typedef typename aux::joint_iter begin; typedef typename aux::joint_iter end;