| /* |
| For wchar support, you need to include the wchar.i file |
| before this file, ie: |
| |
| %include <wchar.i> |
| %include <std_sstream.i> |
| |
| or equivalently, just include |
| |
| %include <std_wsstream.i> |
| */ |
| |
| %include <std_alloc.i> |
| %include <std_basic_string.i> |
| %include <std_string.i> |
| %include <std_ios.i> |
| #if defined(SWIG_WCHAR) |
| %include <std_wstring.i> |
| #endif |
| %include <std_streambuf.i> |
| %include <std_iostream.i> |
| |
| %{ |
| #include <sstream> |
| %} |
| |
| |
| namespace std |
| { |
| template<typename _CharT, typename _Traits = char_traits<_CharT>, |
| typename _Alloc = allocator<_CharT> > |
| class basic_stringbuf : public basic_streambuf<_CharT, _Traits> |
| { |
| public: |
| // Types: |
| typedef _CharT char_type; |
| typedef _Traits traits_type; |
| // 251. basic_stringbuf missing allocator_type |
| typedef _Alloc allocator_type; |
| typedef typename traits_type::int_type int_type; |
| typedef typename traits_type::pos_type pos_type; |
| typedef typename traits_type::off_type off_type; |
| |
| public: |
| // Constructors: |
| explicit |
| basic_stringbuf(ios_base::openmode __mode = ios_base::in | ios_base::out); |
| |
| explicit |
| basic_stringbuf(const basic_string<_CharT, _Traits, _Alloc>& __str, |
| ios_base::openmode __mode = ios_base::in | ios_base::out); |
| |
| // Get and set: |
| basic_string<_CharT, _Traits, _Alloc> |
| str() const; |
| |
| void |
| str(const basic_string<_CharT, _Traits, _Alloc>& __s); |
| |
| }; |
| |
| |
| // 27.7.2 Template class basic_istringstream |
| template<typename _CharT, typename _Traits = char_traits<_CharT>, |
| typename _Alloc = allocator<_CharT> > |
| class basic_istringstream : public basic_istream<_CharT, _Traits> |
| { |
| public: |
| // Types: |
| typedef _CharT char_type; |
| typedef _Traits traits_type; |
| // 251. basic_stringbuf missing allocator_type |
| typedef _Alloc allocator_type; |
| typedef typename traits_type::int_type int_type; |
| typedef typename traits_type::pos_type pos_type; |
| typedef typename traits_type::off_type off_type; |
| |
| |
| public: |
| // Constructors: |
| explicit |
| basic_istringstream(ios_base::openmode __mode = ios_base::in); |
| |
| explicit |
| basic_istringstream(const basic_string<_CharT, _Traits, _Alloc>& __str, |
| ios_base::openmode __mode = ios_base::in); |
| |
| ~basic_istringstream(); |
| |
| // Members: |
| basic_stringbuf<_CharT, _Traits, _Alloc>* |
| rdbuf() const; |
| |
| basic_string<_CharT, _Traits, _Alloc> |
| str() const; |
| |
| void |
| str(const basic_string<_CharT, _Traits, _Alloc>& __s); |
| }; |
| |
| |
| // 27.7.3 Template class basic_ostringstream |
| template<typename _CharT, typename _Traits = char_traits<_CharT>, |
| typename _Alloc = allocator<_CharT> > |
| class basic_ostringstream : public basic_ostream<_CharT, _Traits> |
| { |
| public: |
| // Types: |
| typedef _CharT char_type; |
| typedef _Traits traits_type; |
| // 251. basic_stringbuf missing allocator_type |
| typedef _Alloc allocator_type; |
| typedef typename traits_type::int_type int_type; |
| typedef typename traits_type::pos_type pos_type; |
| typedef typename traits_type::off_type off_type; |
| |
| |
| public: |
| // Constructors/destructor: |
| explicit |
| basic_ostringstream(ios_base::openmode __mode = ios_base::out); |
| |
| explicit |
| basic_ostringstream(const basic_string<_CharT, _Traits, _Alloc>& __str, |
| ios_base::openmode __mode = ios_base::out); |
| |
| ~basic_ostringstream(); |
| |
| // Members: |
| basic_stringbuf<_CharT, _Traits, _Alloc>* |
| rdbuf() const; |
| |
| basic_string<_CharT, _Traits, _Alloc> |
| str() const; |
| |
| #if 0 |
| void |
| str(const basic_string<_CharT, _Traits, _Alloc>& __s); |
| #endif |
| }; |
| |
| |
| // 27.7.4 Template class basic_stringstream |
| template<typename _CharT, typename _Traits = char_traits<_CharT>, |
| typename _Alloc = allocator<_CharT> > |
| class basic_stringstream : public basic_iostream<_CharT, _Traits> |
| { |
| public: |
| // Types: |
| typedef _CharT char_type; |
| typedef _Traits traits_type; |
| // 251. basic_stringbuf missing allocator_type |
| typedef _Alloc allocator_type; |
| typedef typename traits_type::int_type int_type; |
| typedef typename traits_type::pos_type pos_type; |
| typedef typename traits_type::off_type off_type; |
| |
| public: |
| // Constructors/destructors |
| explicit |
| basic_stringstream(ios_base::openmode __m = ios_base::out | ios_base::in); |
| |
| explicit |
| basic_stringstream(const basic_string<_CharT, _Traits, _Alloc>& __str, |
| ios_base::openmode __m = ios_base::out | ios_base::in); |
| |
| ~basic_stringstream(); |
| |
| // Members: |
| basic_stringbuf<_CharT, _Traits, _Alloc>* |
| rdbuf() const; |
| |
| basic_string<_CharT, _Traits, _Alloc> |
| str() const; |
| |
| void |
| str(const basic_string<_CharT, _Traits, _Alloc>& __s); |
| }; |
| |
| |
| } // namespace std |
| |
| |
| namespace std { |
| %template(istringstream) basic_istringstream<char>; |
| %template(ostringstream) basic_ostringstream<char>; |
| %template(stringstream) basic_stringstream<char>; |
| |
| |
| #if defined(SWIG_WCHAR) |
| %template(wistringstream) basic_istringstream<wchar_t>; |
| %template(wostringstream) basic_ostringstream<wchar_t>; |
| %template(wstringstream) basic_stringstream<wchar_t>; |
| #endif |
| } |