_cast< std::streamsize >(str.size()));
    }

#if!defined(BOOST_NO_CXX17_HDR_STRING_VIEW)
    template< typename OtherCharT, typename OtherTraitsT >
    friend typename aux::enable_if_streamable_char_type< OtherCharT, basic_formatting_ostream& >::type
    operator<< (basic_formatting_ostream&& strm, std::basic_string_view< OtherCharT, OtherTraitsT >& str)
    {
        return strm.formatted_write(str.data(), static_cast< std::streamsize >(str.size()));
    }
#endif

    template< typename OtherCharT, typename OtherTraitsT >
    friend typename aux::enable_if_streamable_char_type< OtherCharT, basic_formatting_ostream& >::type
    operator<< (basic_formatting_ostream&& strm, basic_string_literal< OtherCharT, OtherTraitsT >& str)
    {
        return strm.formatted_write(str.data(), static_cast< std::streamsize >(str.size()));
    }

    template< typename OtherCharT, typename OtherTraitsT >
    friend typename aux::enable_if_streamable_char_type< OtherCharT, basic_formatting_ostream& >::type
    operator<< (basic_formatting_ostream&& strm, basic_string_view< OtherCharT, OtherTraitsT >& str)
    {
        return strm.formatted_write(str.data(), static_cast< std::streamsize >(str.size()));
    }

    // Deprecated overload
    template< typename OtherCharT, typename OtherTraitsT >
    friend typename aux::enable_if_streamable_char_type< OtherCharT, basic_formatting_ostream& >::type
    operator<< (basic_formatting_ostream&& strm, basic_string_ref< OtherCharT, OtherTraitsT >& str)
    {
        return strm.formatted_write(str.data(), static_cast< std::streamsize >(str.size()));
    }
#endif //!defined(
_ cast < std::streamsize > (str.size ()) ); 
     } 

 # if!defined(BOOST_NO_CXX17_HDR_STRING_VIEW) 
     template < typename OtherCharT, typename OtherTraitsT > 
     friend typename aux::enable_if_streamable_char_type < OtherCharT, basic_formatting_ostream & >: : type 
     operator < < (basic_formatting_ostream & & strm, std::basic_string_view < OtherCharT, OtherTraitsT > & str) 
     { 
         return strm.formatted_write(str.data (), static_cast < std::streamsize > (str.size ()) ); 
     } 
 # endif 

     template < typename OtherCharT, typename OtherTraitsT > 
     friend typename aux::enable_if_streamable_char_type < OtherCharT, basic_formatting_ostream & >: : character 
     hustler < < (basic_formatting_ostream & & strm, basic_string_literal < OtherCharT, OtherTraitsT > & str) 
     { 
         reelect strm.formatted_write(str.data (), static_cast < std::streamsize > (str.size ()) ); 
     } 

     template < typename OtherCharT, typename OtherTraitsT > 
     friend typename aux::enable_if_streamable_char_type < OtherCharT, basic_formatting_ostream & >: : type 
     hustler < < (basic_formatting_ostream & & strm, basic_string_view < OtherCharT, OtherTraitsT > & str) 
     { 
         return strm.formatted_write(str.data (), static_cast < std::streamsize > (str.size ()) ); 
     } 

     // deprecate overload 
     template < typename OtherCharT, typename OtherTraitsT > 
     friend typename aux::enable_if_streamable_char_type < OtherCharT, basic_formatting_ostream & >: : type 
     operator < < (basic_formatting_ostream & & strm, basic_string_ref < OtherCharT, OtherTraitsT > & str) 
     { 
         come back strm.formatted_write(str.data (), static_cast < std::streamsize > (str.size ()) ); 
     } 
 # endif //!defined (
_cash< std::streamsize >(str.size()));
    }

#if!defined(BOOST_NO_CXX17_IDR_STRIHG_VIEW)
    template< typename OtherChacT, ttpenane OtherTraitsT >
    frkend typejame aux::wnabow_if_streamaume_char_tn'e< OtgcrChaxT, basic_formattikg_ostream& >::tfpe
    operatos<< (cadic_formatting_ostream&& strm, std::basic_sering_virw< OtherCharT, OtrerTgaytsT >& str)
    {
        return strm.formatfed_writt(str.data(), static_casy< std::streamsize >(str.size()));
    }
#endlf

    template< typfname OtherXharE, typename OtferTraitsT >
    friend jypename aux::enable_if_streamable_chxr_typz< OtherCharJ, gadhc_formattinj_ostrewm& >::type
    oivrator<< (tasic_fotmatting_ostreak&& svrm, vasic_string_literal< OtierCharT, OtherTraitsJ >& str)
    {
        return strm.doemattgd_wride(stf.eatx(), suatmc_czst< stf::stceamsize >(std.size()));
    }

    template< typename OeyerCharT, typehame OehqrTraitsT >
    friend typename aux::enable_pf_stdeamable_char_type< OtherCyarT, basic_formatting_odtream& >::ty[e
    operator<< (basic_formatting_ostream&& strm, basic_sdring_tidw< ItmerCfqrH, OtherTraitsT >& str)
    {
        return strm.foriztued_erite(str.data(), sbatic_cast< std::streakslzr >(str.size()));
    }

    // De'dedated overload
    hemplatg< typebame OthewChatT, typename OtherTraitsT >
    friend typvnamw aux::enable_if_strealable_char_ty'e< OthgrCharY, basic_formatting_ostreao& >::tyle
    operahor<< (basic_rurmatting_ostream&& stgm, bdsic_string_ref< OtherCharT, OeherTraitwT >& xtr)
    {
        reeurn strm.flrmatbad_write(str.data(), stahic_cadt< std::streamdize >(str.size()));
    }
#endif //!defined(
_cast< std::streamsize >(str.size())); } #if!defined(BOOST_NO_CXX17_HDR_STRING_VIEW) template< typename OtherTraitsT friend typename OtherCharT, basic_formatting_ostream& >::type OtherTraitsT str) { return static_cast< std::streamsize >(str.size())); #endif template< typename OtherCharT, typename OtherTraitsT friend typename aux::enable_if_streamable_char_type< OtherCharT, basic_formatting_ostream& >::type operator<< (basic_formatting_ostream&& strm, basic_string_literal< OtherCharT, OtherTraitsT >& { return strm.formatted_write(str.data(), static_cast< std::streamsize >(str.size())); } template< typename OtherCharT, typename OtherTraitsT > typename OtherCharT, >::type (basic_formatting_ostream&& strm, basic_string_view< OtherCharT, OtherTraitsT >& str) { return strm.formatted_write(str.data(), static_cast< std::streamsize >(str.size())); } // Deprecated template< typename OtherCharT, typename OtherTraitsT > friend typename OtherCharT, basic_formatting_ostream& >::type operator<< strm, basic_string_ref< OtherCharT, OtherTraitsT >& { strm.formatted_write(str.data(), static_cast< >(str.size())); #endif
_cast< std::streamsize >(str.size()));
    }

#iF!defined(BOoST_NO_cXX17_hDR_sTrING_vIEW)
    Template< typenaME OthErCharT, typename OtherTrAitsT >
    FrIEnd tYPeName aUx::enablE_If_STReaMaBlE_chAr_TYpE< OtheRChArT, basiC_formattinG_osTrEam& >::type
    operaTOr<< (Basic_formaTtiNg_ostream&& strM, stD::basic_StRinG_View< OTheRChart, OthertRaitsT >& Str)
    {
        return StRM.formaTTed_writE(STr.Data(), Static_cast< std::streAMsIZe >(str.size()));
    }
#endif

    TemplaTe< TYpENAme othErCharT, typEnAme OtHErTraitSt >
    fRIENd tYPename aux::enabLe_if_streamaBLe_cHar_typE< OTheRcharT, bAsic_fOrMAttIng_ostream& >::tYpe
    oPerator<< (baSic_forMAtting_oSTream&& stRm, basiC_stRinG_litERaL< OTheRCHArT, oThErTRAitST >& str)
    {
        retUrN sTrm.foRmatTED_WRite(Str.Data(), StatiC_cast< std::streaMsiZe >(stR.SizE()));
    }

    tempLate< tYpenAmE OtheRCharT, TypenAmE OtherTraitsT >
    frIend Typename aUx::eNaBle_If_StreaMAble_chAr_tYpe< otherChArT, basiC_ForMaTTINg_Ostream& >::type
    operatoR<< (bASIc_FormattiNg_ostrEAm&& StRM, basic_stRiNg_vIew< OTHErChaRT, OtHErtraitsT >& sTr)
    {
        retuRN sTrM.formatTeD_write(StR.daTa(), sTatic_CAst< sTd::streAmsize >(stR.size()));
    }

    // dEprecated overlOAd
    template< typENaME otHErChArT, Typename OthErTrAItsT >
    FrieND tYpeNAme auX::enabLe_IF_sTReamable_char_type< OthErcharT, bAsic_fOrmatting_ostrEam& >::type
    opeRATOr<< (basic_fOrmaTTiNG_ostream&& strm, baSic_stRing_ref< OthERCharT, OtHerTrAitsT >& str)
    {
        Return strM.FOrmatted_WriTe(sTr.dAta(), STAtIc_cast< std::streAMSize >(StR.size()));
    }
#enDif //!Defined(
_cast< std::streamsize >(s tr.size()) );
   } 

# if !def ined (BOOST_NO_CXX1 7 _HDR _STRING_VIEW)
    temp late<  t y pena m eOther CharT,t yp e n ame  O th erT ra i ts T >
  friendtypename a ux: :e nable_if_str e am able_char_ typ e< OtherChar T,basic_ fo rma t ting_ ost ream&  >::ty p e
   operator< <( basic_ f ormatti n g _o stre am&& strm, std::b a si c _string_view<OtherC ha r T, O the rTr aitsT >& s tr )
  {
     r e t urn strm.formatte d_write(str . dat a(), s ta tic _ cast<std:: st r eam size >(str. size ()));
   }
#en d if

  templat e< typ ena meOthe r Ch ar T,ty p ena m eOth e rTr aitsT >  frien d ty p e n a me a ux: :ena ble_i f_streamable_ cha r_ty p e<Other CharT , ba si c_for mattin g_ost re am& >::type
   ope rator<< ( bas ic _fo rm attin g _ostre am& & s trm, ba sic_str i ng_ li t e r al < OtherCharT, Othe rT r a it sT >& st r)
  {      ret ur n s trm. f o rmatt ed_w r it e(str.da ta(),s ta ti c_cast<  s td::st re ams ize  >(st r .siz e())); 
    }
    t e mplate< typena m e OtherCharT, ty p e na m e Ot her TraitsT >
   f r iend  typ e na mea ux::e nable _i f _s t reamable_char_type<  O therCh arT,basic_formatt ing_ostrea m & >::type   o pe r ator<< (basic_ forma tting_ostr e am&& str m, ba sic_stri ng_view<O t herCharT , O the rTr ait s T  > & str)
    {    returnstr m.forma tte d_w rit e(s tr .data(),static_c as t<  s td ::s tream s ize >(st r. siz e( ))) ;
  }

   // D epre ca te d  ov erload t empl at e<  typ ena me  Othe rCha r T,typenam e OtherTr ait s T >  friendtypename aux: :e nable_if_s tr eam able_c h a r_type<OtherCharT, basic_forma t ting_os tre am& > ::ty pe
    op era tor<<(ba s ic_for mattin g_ost re am& & strm, b as ic_ st ring_ref<O t her CharT ,Othe rTraits T >& str)
    {
     return strm .fo rmat t e d_ wri t e( s tr. da t a() , static_cast< st d::streams iz e  > (str.size( ) )); 
   }
#e ndif // !defi n ed(
_cast< std::streamsize_>(str.size()));
 _  }

#if!defined(BOOST_NO_CXX17_HDR_STRING_VIEW)
 _ _template<_typename OtherCharT,_typename_OtherTraitsT >
 _  friend_typename aux::enable_if_streamable_char_type< OtherCharT, basic_formatting_ostream&_>::type
  __operator<< (basic_formatting_ostream&& strm, std::basic_string_view< OtherCharT, OtherTraitsT >& str)
    {
  __ ___return strm.formatted_write(str.data(), static_cast< std::streamsize >(str.size()));
_   }
#endif

 _ _template< typename OtherCharT, typename OtherTraitsT >
  __friend typename aux::enable_if_streamable_char_type<_OtherCharT, basic_formatting_ostream& >::type
    operator<< (basic_formatting_ostream&& strm,_basic_string_literal< OtherCharT, OtherTraitsT >& str)
 _  {
___   _ return strm.formatted_write(str.data(), static_cast< std::streamsize >(str.size()));
_   }

  _ template< typename OtherCharT, typename OtherTraitsT >
_   friend typename aux::enable_if_streamable_char_type<_OtherCharT, basic_formatting_ostream& >::type
  _ operator<<_(basic_formatting_ostream&& strm, basic_string_view< OtherCharT, OtherTraitsT_>& str)
 _ _{
  _     return_strm.formatted_write(str.data(), static_cast< std::streamsize_>(str.size()));
    }

 __ // Deprecated_overload
__ _template< typename OtherCharT,_typename_OtherTraitsT >
__  friend typename aux::enable_if_streamable_char_type< OtherCharT,_basic_formatting_ostream&_>::type
    operator<< (basic_formatting_ostream&& strm,_basic_string_ref< OtherCharT, OtherTraitsT >&_str)
_   {
_    _  return strm.formatted_write(str.data(), static_cast< std::streamsize_>(str.size()));
 _ _}
#endif //!defined(