⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wrap_stringstream.hpp

📁 CGAL is a collaborative effort of several sites in Europe and Israel. The goal is to make the most i
💻 HPP
字号:
//  (C) Copyright Gennadiy Rozental 2002-2003.//  Distributed under the Boost Software License, Version 1.0.//  (See accompanying file LICENSE_1_0.txt or copy at //  http://www.boost.org/LICENSE_1_0.txt)//  See http://www.boost.org/libs/test for the library home page.////  File        : $RCSfile: wrap_stringstream.hpp,v $////  Version     : $Revision: 1.1.1.2 $////  Description : wraps strstream and stringstream (depends with one is present )//                to prodive the unified interface// ***************************************************************************#ifndef BOOST_WRAP_STRINGSTREAM_HPP_071894GER#define BOOST_WRAP_STRINGSTREAM_HPP_071894GER// STL#ifdef BOOST_NO_STRINGSTREAM#include <strstream>        // for std::ostrstream#else#include <sstream>          // for std::ostringstream#endif // BOOST_NO_STRINGSTREAM#ifdef BOOST_MSVC# pragma warning(push)# pragma warning(disable: 4511) // copy constructor could not be generated# pragma warning(disable: 4512) // assignment operator could not be generated#endifnamespace boost {// ************************************************************************** //// **************            basic_wrap_stringstream           ************** //// ************************************************************************** //template<typename CharT>class basic_wrap_stringstream {#ifdef BOOST_CLASSIC_IOSTREAMS    typedef std::ostringstream               wrapped_stream;#else #ifdef BOOST_NO_STRINGSTREAM    typedef std::basic_ostrstream<CharT>     wrapped_stream;#else    typedef std::basic_ostringstream<CharT>  wrapped_stream;#endif // BOOST_NO_STRINGSTREAM#endif // WORKAROUNDpublic:    // Access methods    basic_wrap_stringstream&        ref();    wrapped_stream&                 stream();    std::basic_string<CharT> const& str();private:    // Data members    wrapped_stream                  m_stream;    std::basic_string<CharT>        m_str;};//____________________________________________________________________________//template <typename CharT, typename T>inline basic_wrap_stringstream<CharT>&operator<<( basic_wrap_stringstream<CharT>& targ, T const& t ){    targ.stream() << t;    return targ;}//____________________________________________________________________________//template <typename CharT>inline typename basic_wrap_stringstream<CharT>::wrapped_stream&basic_wrap_stringstream<CharT>::stream(){    return m_stream;}//____________________________________________________________________________//template <typename CharT>inline basic_wrap_stringstream<CharT>&basic_wrap_stringstream<CharT>::ref(){     return *this;}//____________________________________________________________________________//template <typename CharT>inline std::basic_string<CharT> const&basic_wrap_stringstream<CharT>::str(){#ifdef BOOST_NO_STRINGSTREAM    m_str.assign( m_stream.str(), m_stream.pcount() );    m_stream.freeze( false );#else    m_str = m_stream.str();#endif    return m_str;}//____________________________________________________________________________//template <typename CharT>inline basic_wrap_stringstream<CharT>&operator<<( basic_wrap_stringstream<CharT>& targ, basic_wrap_stringstream<CharT>& src ){    targ << src.str();    return targ;}//____________________________________________________________________________//#if !defined(BOOST_NO_STD_LOCALE) && BOOST_WORKAROUND(BOOST_MSVC, >= 1310)template <typename CharT>inline basic_wrap_stringstream<CharT>&operator<<( basic_wrap_stringstream<CharT>& targ, std::ios_base& (*man)(std::ios_base&) ){    targ.stream() << man;    return targ;}//____________________________________________________________________________//template<typename CharT,typename Elem,typename Tr>inline basic_wrap_stringstream<CharT>&operator<<( basic_wrap_stringstream<CharT>& targ, std::basic_ostream<Elem,Tr>& (*man)(std::basic_ostream<Elem, Tr>&) ){    targ.stream() << man;    return targ;}//____________________________________________________________________________//template<typename CharT,typename Elem,typename Tr>inline basic_wrap_stringstream<CharT>&operator<<( basic_wrap_stringstream<CharT>& targ, std::basic_ios<Elem, Tr>& (*man)(std::basic_ios<Elem, Tr>&) ){    targ.stream() << man;    return targ;}//____________________________________________________________________________//#endif// ************************************************************************** //// **************               wrap_stringstream              ************** //// ************************************************************************** //typedef basic_wrap_stringstream<char>       wrap_stringstream;typedef basic_wrap_stringstream<wchar_t>    wrap_wstringstream;}  // namespace boost#ifdef BOOST_MSVC# pragma warning(default: 4511) // copy constructor could not be generated# pragma warning(default: 4512) // assignment operator could not be generated# pragma warning(pop)#endif// ***************************************************************************//  Revision History ://  //  $Log: wrap_stringstream.hpp,v $//  Revision 1.1.1.2  2004/11/20 10:52:21  spion//  Import of Boost v. 1.32.0////  Revision 1.14  2004/09/19 09:22:12  rogeeff//  ios fix for classic iostreams////  Revision 1.13  2004/07/19 12:24:32  rogeeff//  guard rename////  Revision 1.12  2004/05/27 06:23:22  rogeeff//  workaround for gcc 2.95 io//  workaround for msvc < 7.1 for manipulator usage////  Revision 1.11  2004/05/21 06:19:35  rogeeff//  licence update////  Revision 1.10  2004/05/11 11:00:53  rogeeff//  basic_cstring introduced and used everywhere//  class properties reworked////  Revision 1.9  2003/12/01 00:41:56  rogeeff//  prerelease cleaning//// ***************************************************************************#endif  // BOOST_WRAP_STRINGSTREAM_HPP_071894GER

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -