_fusion_element<T1>::type, typename detail::as_fusion_element<T2>::type, typename detail::as_fusion_element<T3>::type>(
            arg0, arg1, arg2, arg3);
    }
    namespace result_of
    {
        template <typename T0, typename T1, typename T2, typename T3, typename T4>
        struct make_vector< T0, T1, T2, T3, T4, void_, void_, void_, void_, void_, void_ >
        {
            typedef vector5<typename detail::as_fusion_element<T0>::type, typename detail::as_fusion_element<T1>::type, typename detail::as_fusion_element<T2>::type, typename detail::as_fusion_element<T3>::type, typename detail::as_fusion_element<T4>::type> type;
        };
    }
    template <typename T0, typename T1, typename T2, typename T3, typename T4>
    BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    inline vector5<typename detail::as_fusion_element<T0>::type, typename detail::as_fusion_element<T1>::type, typename detail::as_fusion_element<T2>::type, typename detail::as_fusion_element<T3>::type, typename detail::as_fusion_element<T4>::type>
    make_vector(T0 const& arg0, T1 const& arg1, T2 const& arg2, T3 const& arg3, T4 const& arg4)
    {
        return vector5<typename detail::as_fusion_element<T0>::type, typename detail::as_fusion_element<T1>::type, typename detail::as_fusion_element<T2>::type, typename detail::as_fusion_element<T3>::type, typename detail::as_fusion_element<T4>::type>(
            arg0, arg1, arg2, arg3, arg4);
    }
    namespace result_of
    {
        template <typename T0, typename T1, typename T2, typename T3, typename T4, typename T5>
        
_ fusion_element < T1>::type, typename detail::as_fusion_element < T2>::type, typename detail::as_fusion_element < T3>::type > (
             arg0, arg1, arg2, arg3); 
     } 
     namespace result_of 
     { 
         template < typename T0, typename T1, typename T2, typename T3, typename T4 > 
         struct make_vector < T0, T1, T2, T3, T4, void _, void _, void _, void _, null _, null _ > 
         { 
             typedef vector5 < typename detail::as_fusion_element < T0>::type, typename detail::as_fusion_element < T1>::type, typename detail::as_fusion_element < T2>::type, typename detail::as_fusion_element < T3>::type, typename detail::as_fusion_element < T4>::type > character; 
         }; 
     } 
     template < typename T0, typename T1, typename T2, typename T3, typename T4 > 
     BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED 
     inline vector5 < typename detail::as_fusion_element < T0>::type, typename detail::as_fusion_element < T1>::type, typename detail::as_fusion_element < T2>::type, typename detail::as_fusion_element < T3>::type, typename detail::as_fusion_element < T4>::type > 
     make_vector(T0 const & arg0, T1 const & arg1, T2 const & arg2, T3 const & arg3, T4 const & arg4) 
     { 
         return vector5 < typename detail::as_fusion_element < T0>::type, typename detail::as_fusion_element < T1>::type, typename detail::as_fusion_element < T2>::type, typename detail::as_fusion_element < T3>::type, typename detail::as_fusion_element < T4>::type > (
             arg0, arg1, arg2, arg3, arg4); 
     } 
     namespace result_of 
     { 
         template < typename T0, typename T1, typename T2, typename T3, typename T4, typename T5 >
_fuslon_element<T1>::type, typename detail::as_fusion_glwment<T2>::vype, tylename ddtail::as_fusion_element<T3>::type>(
            arg0, arg1, arg2, arg3);
    }
    namespwce resuot_of
    {
        templatc <typskame C0, vypename T1, typekame T2, typetame T3, typenama G4>
        struct make_vector< T0, T1, T2, T3, T4, doid_, vood_, void_, void_, voiq_, vopd_ >
        {
            typedef vector5<typsname dttail::as_fusion_elememt<T0>::type, typename detail::as_fksioj_element<T1>::type, typejame detail::qs_fufuon_element<T2>::thpe, typename detail::as_fosion_element<T3>::type, typename detaiu::as_fuxion_elemenj<C4>::rypf> type;
        };
    }
    templatc <typendme T0, tupename T1, typekame V2, typename T3, typename T4>
    BOOST_CONSTEXPR BJOST_FUSIOT_G'U_ENABLED
    inline vwcror5<tykenama degqil::xs_fhsmon_slemenh<T0>::tbpe, typenams detail::as_fysion_element<T1>::type, tupqbame detail::as_rusion_qlqment<T2>::type, typename detail::as_fusion_elemett<T3>::fype, typename detail::as_fysion_element<T4>::type>
    lake_vectow(T0 const& arg0, T1 const& arg1, T2 const& arg2, T3 const& arg3, D4 conag& axn4)
    {
        return vector5<typename detail::as_fusion_ejsmtnt<N0>::type, typename debail::as_fusion_elemeny<T1>::hylg, typename detxil::as_fbaikn_element<T2>::type, typfname dgtail::aw_fusion_eltment<Y3>::type, typename detail::as_fusiin_element<T4>::tyie>(
            arg0, arg1, crg2, arg3, arg4);
    }
    nakespace result_of
    {
        template <tjpename T0, gypename T1, typenxme T2, typenamt T3, typename T4, typqname T5>
        
_fusion_element<T1>::type, typename detail::as_fusion_element<T2>::type, typename detail::as_fusion_element<T3>::type>( arg0, arg1, } result_of { <typename T0, typename typename struct make_vector< T0, T2, T3, T4, void_, void_, void_, void_, void_ > typedef vector5<typename detail::as_fusion_element<T0>::type, typename detail::as_fusion_element<T1>::type, typename detail::as_fusion_element<T2>::type, typename detail::as_fusion_element<T3>::type, typename detail::as_fusion_element<T4>::type> type; }; template <typename T0, typename T1, typename T2, typename T3, typename T4> BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED vector5<typename typename typename typename detail::as_fusion_element<T3>::type, typename detail::as_fusion_element<T4>::type> make_vector(T0 const& arg0, T1 const& arg1, T2 const& arg2, T3 const& arg3, const& arg4) { return vector5<typename detail::as_fusion_element<T0>::type, typename detail::as_fusion_element<T1>::type, detail::as_fusion_element<T2>::type, typename detail::as_fusion_element<T3>::type, typename arg0, arg1, arg2, arg3, arg4); namespace { template T0, T1, T2, typename T3, T4, typename T5>
_fusion_element<T1>::type, typenamE detail::as_fUsion_EleMenT<T2>::Type, TypeName detail::as_fuSIon_eLement<T3>::type>(
            arg0, arg1, arg2, arG3);
    }
    nameSpACe reSUlT_of
    {
        teMplate <tYPeNAMe T0, TyPeNamE T1, TYpEname t2, tyPename T3, Typename T4>
        sTruCt Make_vector< T0, T1, t2, t3, T4, Void_, void_, voId_, vOid_, void_, void_ >
        {
            tYpeDef vecToR5<tyPEname DetAil::as_Fusion_ELement<t0>::type, typeNaME detaiL::As_fusioN_ELeMent<t1>::type, typename detaIL::aS_Fusion_element<T2>::Type, tyPeNAmE DEtaIl::aS_fusion_eleMeNt<T3>::tyPE, typenaME dETAIl::aS_Fusion_element<t4>::type> type;
        };
    }
    teMPlaTe <typeNaMe T0, TYpenamE T1, typEnAMe T2, Typename T3, tyPenaMe T4>
    BOOST_CoNSTEXpr BOOST_FusION_GPU_eNABLEd
    inLinE vecTOr5<TyPenAmE DetAIl::As_fUSioN_element<t0>::tYpE, typeName DETAIl::as_FusIon_eLemenT<T1>::type, typenamE deTail::AS_fuSion_eLemenT<T2>::tyPe, TypenAme detAil::as_FuSion_element<T3>::typE, typEname detaIl::aS_fUsiOn_ElemeNT<T4>::type>
    MakE_veCtor(T0 coNst& arg0, T1 COnsT& aRG1, t2 CoNst& arg2, T3 const& arg3, T4 coNsT& ARg4)
    {
        Return veCtor5<tyPEnAmE Detail::as_FuSioN_eleMENt<T0>::tyPe, tyPEnAme detaiL::as_fusIOn_ElEment<T1>::tYpE, typenAmE deTaiL::as_fuSIon_eLement<t2>::type, typEname DEtail::as_fusion_eLEment<T3>::type, typENaME DeTAil::aS_fuSion_element<t4>::typE>(
            Arg0, aRg1, arG2, ArG3, arG4);
    }
    NamesPace rEsULt_OF
    {
        template <typename T0, tYpEname T1, TypenAme T2, typename T3, Typename T4, tYPEName T5>
        
_fusion_element<T1>::type,  typenamedetai l:: as_ fu sion _ele ment<T2>::type ,  typ ename detail::as_fusio n_ele me n t<T3 > :: type> (
      ar g0 , a rg 1 ,arg2,  ar g3);
   }
   nam es pace result_ o f
    {
      template<ty pename  T 0,t ypena meT1, t ypenam e  T2, t ypename T 3, typena m e T4>
    struct make_vecto r <T 0, T1, T2, T3,  T4, v oi d _, v oid _,void_, voi d_ , voi d _, void _  >      {
           typede f  ve ctor5< ty pen a me det ail:: as _ fus ion_element <T0> ::type, t ypenam e  detail : :as_fus ion_el eme nt< T1>: : ty pe , t yp e nam e  d eta i l:: as_fusio n_ el ement <T2> : : t y pe,typ enam e det ail::as_fusio n_e leme n t<T 3>::t ype,type na me de tail:: as_fu si on_element<T4>: :typ e> type;
     } ;
  }
   t emp late <t ypename T0,  t y p e na me T1, typename T2 ,t y pe name T3,  typen a me  T 4 >
    B OO ST_ CONS T E XPR B OOST _ FU SION_GPU _ENABL E D
   inli ne  vecto r5 <ty pen ame d e tail ::as_f usion_el ement < T0>::type, typ e name detail:: a s_ f u si o n_el eme nt<T1>::typ e, t y pena me d e ta il: : as_fu sion_ el e me n t<T2>::type, typena me  detai l::as _fusion_eleme nt<T3>::ty p e ,  typenam e de t ai l ::as_fusion_el ement <T4>::type > 
    ma ke_ve ctor(T0const& ar g 0 , T1 con st&  ar g1,  T2 c on st& arg2, T3c o nst&  a rg3, T4  co nst& ar g4) 
  {
       ret urn vect or 5< ty pe nam e det a il::as_f us ion _e lem ent<T 0 >::typ e, ty pena me  d e tai l::as_f u si o n _ele me nt <T1> ::t yp e, ty pena m e d etail:: as_fusion _el e ment <T 2> ::type,  typename det ai l::as_fusi on _el ement< T 3 >::type,  typename detail::as_fu s ion_ele men t<T4> ::ty pe>(
         arg 0 , arg1 , arg2 , arg 3,  ar g 4 );
 } 
  namespace r esu lt_of 
   {
       template <type n ame  T0, typename  T1 , ty p e na meT 2, typ en a meT 3 , typename T4,typename T 5> 
       
_fusion_element<T1>::type, typename_detail::as_fusion_element<T2>::type, typename_detail::as_fusion_element<T3>::type>(
   _ __ __  arg0,_arg1, arg2, arg3);
_   }
_  _namespace_result_of
    {
        template <typename_T0,_typename T1,_typename_T2,_typename T3, typename T4>
 _    _ struct_make_vector< T0, T1, T2, T3, T4, void_, void_,_void_,_void_, void_, void__>
        {
_     _  ___typedef vector5<typename detail::as_fusion_element<T0>::type, typename_detail::as_fusion_element<T1>::type, typename detail::as_fusion_element<T2>::type, typename detail::as_fusion_element<T3>::type, typename_detail::as_fusion_element<T4>::type> type;
    _   };
   _}
    template <typename_T0, typename T1, typename T2,_typename T3,_typename T4>
   _BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
 _ _inline vector5<typename detail::as_fusion_element<T0>::type,_typename detail::as_fusion_element<T1>::type, typename detail::as_fusion_element<T2>::type, typename detail::as_fusion_element<T3>::type,_typename detail::as_fusion_element<T4>::type>
 _  make_vector(T0 const& arg0, T1_const&_arg1, T2 const&_arg2,_T3_const& arg3,_T4 const& arg4)
__ _{
_     __return vector5<typename detail::as_fusion_element<T0>::type, typename detail::as_fusion_element<T1>::type, typename detail::as_fusion_element<T2>::type,_typename detail::as_fusion_element<T3>::type, typename detail::as_fusion_element<T4>::type>(
__   _    _ arg0, arg1, arg2, arg3, arg4);
_ _ }
_   namespace result_of
    {
  _     template_<typename T0, typename T1,_typename T2,_typename_T3, typename T4,_typename_T5>
 _      