Index: swig/Lib/std/std_iostream.i |
=================================================================== |
--- swig/Lib/std/std_iostream.i (revision 0) |
+++ swig/Lib/std/std_iostream.i (revision 0) |
@@ -0,0 +1,339 @@ |
+/* |
+ For wchar support, you need to include the wchar.i file |
+ before this file, ie: |
+ |
+ %include <wchar.i> |
+ %include <std_iostream.i> |
+ |
+ or equivalently, just include |
+ |
+ %include <std_wiostream.i> |
+*/ |
+ |
+%include <std_ios.i> |
+%include <std_basic_string.i> |
+%include <std_string.i> |
+#if defined(SWIG_WCHAR) |
+%include <std_wstring.i> |
+#endif |
+ |
+%{ |
+#include <iostream> |
+%} |
+ |
+ |
+namespace std |
+{ |
+ // 27.6.2.1 Template class basic_ostream |
+ template<typename _CharT, typename _Traits = char_traits<_CharT> > |
+ class basic_ostream : virtual public basic_ios<_CharT, _Traits> |
+ { |
+ public: |
+ // Types (inherited from basic_ios (27.4.4)): |
+ typedef _CharT char_type; |
+ typedef typename _Traits::int_type int_type; |
+ typedef typename _Traits::pos_type pos_type; |
+ typedef typename _Traits::off_type off_type; |
+ typedef _Traits traits_type; |
+ |
+ // 27.6.2.2 Constructor/destructor: |
+ explicit |
+ basic_ostream(basic_streambuf<_CharT, _Traits>* __sb); |
+ |
+ virtual |
+ ~basic_ostream(); |
+ |
+ // 27.6.2.5 Formatted output: |
+ // 27.6.2.5.3 basic_ostream::operator<< |
+ basic_ostream<_CharT, _Traits>& |
+ operator<<(basic_ostream<_CharT, _Traits>& (*__pf)(basic_ostream<_CharT, _Traits>&)); |
+ |
+ |
+ basic_ostream<_CharT, _Traits>& |
+ operator<<(basic_ios<_CharT, _Traits>& (*__pf)(basic_ios<_CharT, _Traits>&)); |
+ |
+ |
+ basic_ostream<_CharT, _Traits>& |
+ operator<<(ios_base& (*__pf) (ios_base&)); |
+ |
+ // 27.6.2.5.2 Arithmetic Inserters |
+ |
+ basic_ostream<_CharT, _Traits>& |
+ operator<<(long __n); |
+ |
+ basic_ostream<_CharT, _Traits>& |
+ operator<<(unsigned long __n); |
+ |
+ basic_ostream<_CharT, _Traits>& |
+ operator<<(bool __n); |
+ |
+ basic_ostream<_CharT, _Traits>& |
+ operator<<(short __n); |
+ |
+ basic_ostream<_CharT, _Traits>& |
+ operator<<(unsigned short __n); |
+ |
+ basic_ostream<_CharT, _Traits>& |
+ operator<<(int __n); |
+ |
+ basic_ostream<_CharT, _Traits>& |
+ operator<<(unsigned int __n); |
+ |
+ basic_ostream<_CharT, _Traits>& |
+ operator<<(long long __n); |
+ |
+ basic_ostream<_CharT, _Traits>& |
+ operator<<(unsigned long long __n); |
+ |
+ basic_ostream<_CharT, _Traits>& |
+ operator<<(double __f); |
+ |
+ basic_ostream<_CharT, _Traits>& |
+ operator<<(float __f); |
+ |
+ basic_ostream<_CharT, _Traits>& |
+ operator<<(long double __f); |
+ |
+ basic_ostream<_CharT, _Traits>& |
+ operator<<(const void* __p); |
+ |
+ basic_ostream<_CharT, _Traits>& |
+ operator<<(basic_streambuf<_CharT, _Traits>* __sb); |
+ |
+ %extend { |
+ std::basic_ostream<_CharT, _Traits >& |
+ operator<<(const std::basic_string<_CharT,_Traits, std::allocator<_CharT> >& s) |
+ { |
+ *self << s; |
+ return *self; |
+ } |
+ } |
+ |
+ // Unformatted output: |
+ basic_ostream<_CharT, _Traits>& |
+ put(char_type __c); |
+ |
+ basic_ostream<_CharT, _Traits>& |
+ write(const char_type* __s, streamsize __n); |
+ |
+ basic_ostream<_CharT, _Traits>& |
+ flush(); |
+ |
+ // Seeks: |
+ pos_type |
+ tellp(); |
+ |
+ basic_ostream<_CharT, _Traits>& |
+ seekp(pos_type); |
+ |
+ basic_ostream<_CharT, _Traits>& |
+ seekp(off_type, ios_base::seekdir); |
+ |
+ }; |
+ |
+ // 27.6.1.1 Template class basic_istream |
+ template<typename _CharT, typename _Traits = char_traits<_CharT> > |
+ class basic_istream : virtual public basic_ios<_CharT, _Traits> |
+ { |
+ public: |
+ // Types (inherited from basic_ios (27.4.4)): |
+ typedef _CharT char_type; |
+ typedef typename _Traits::int_type int_type; |
+ typedef typename _Traits::pos_type pos_type; |
+ typedef typename _Traits::off_type off_type; |
+ typedef _Traits traits_type; |
+ |
+ |
+ public: |
+ // 27.6.1.1.1 Constructor/destructor: |
+ explicit |
+ basic_istream(basic_streambuf<_CharT, _Traits>* __sb); |
+ |
+ virtual |
+ ~basic_istream(); |
+ |
+ // 27.6.1.2.3 basic_istream::operator>> |
+ basic_istream<_CharT, _Traits>& |
+ operator>>(basic_istream<_CharT, _Traits>& (*__pf)(basic_istream<_CharT, _Traits>&)); |
+ |
+ basic_istream<_CharT, _Traits>& |
+ operator>>(basic_ios<_CharT, _Traits>& (*__pf)(basic_ios<_CharT, _Traits>&)); |
+ |
+ basic_istream<_CharT, _Traits>& |
+ operator>>(ios_base& (*__pf)(ios_base&)); |
+ |
+ // 27.6.1.2.2 Arithmetic Extractors |
+ basic_istream<_CharT, _Traits>& |
+ operator>>(bool& __n); |
+ |
+ basic_istream<_CharT, _Traits>& |
+ operator>>(short& __n); |
+ |
+ basic_istream<_CharT, _Traits>& |
+ operator>>(unsigned short& __n); |
+ |
+ basic_istream<_CharT, _Traits>& |
+ operator>>(int& __n); |
+ |
+ basic_istream<_CharT, _Traits>& |
+ operator>>(unsigned int& __n); |
+ |
+ basic_istream<_CharT, _Traits>& |
+ operator>>(long& __n); |
+ |
+ basic_istream<_CharT, _Traits>& |
+ operator>>(unsigned long& __n); |
+ |
+ basic_istream<_CharT, _Traits>& |
+ operator>>(long long& __n); |
+ |
+ basic_istream<_CharT, _Traits>& |
+ operator>>(unsigned long long& __n); |
+ |
+ basic_istream<_CharT, _Traits>& |
+ operator>>(float& __f); |
+ |
+ basic_istream<_CharT, _Traits>& |
+ operator>>(double& __f); |
+ |
+ basic_istream<_CharT, _Traits>& |
+ operator>>(long double& __f); |
+ |
+ basic_istream<_CharT, _Traits>& |
+ operator>>(void*& __p); |
+ |
+ basic_istream<_CharT, _Traits>& |
+ operator>>(basic_streambuf<_CharT, _Traits>* __sb); |
+ |
+ // 27.6.1.3 Unformatted input: |
+ inline streamsize |
+ gcount(void) const; |
+ |
+ int_type |
+ get(void); |
+ |
+ basic_istream<_CharT, _Traits>& |
+ get(char_type& __c); |
+ |
+ basic_istream<_CharT, _Traits>& |
+ get(char_type* __s, streamsize __n, char_type __delim); |
+ |
+ inline basic_istream<_CharT, _Traits>& |
+ get(char_type* __s, streamsize __n); |
+ |
+ basic_istream<_CharT, _Traits>& |
+ get(basic_streambuf<_CharT, _Traits>& __sb, char_type __delim); |
+ |
+ inline basic_istream<_CharT, _Traits>& |
+ get(basic_streambuf<_CharT, _Traits>& __sb); |
+ |
+ basic_istream<_CharT, _Traits>& |
+ getline(char_type* __s, streamsize __n, char_type __delim); |
+ |
+ inline basic_istream<_CharT, _Traits>& |
+ getline(char_type* __s, streamsize __n); |
+ |
+ basic_istream<_CharT, _Traits>& |
+ ignore(streamsize __n = 1, int_type __delim = _Traits::eof()); |
+ |
+ int_type |
+ peek(void); |
+ |
+ basic_istream<_CharT, _Traits>& |
+ read(char_type* __s, streamsize __n); |
+ |
+ streamsize |
+ readsome(char_type* __s, streamsize __n); |
+ |
+ basic_istream<_CharT, _Traits>& |
+ putback(char_type __c); |
+ |
+ basic_istream<_CharT, _Traits>& |
+ unget(void); |
+ |
+ int |
+ sync(void); |
+ |
+ pos_type |
+ tellg(void); |
+ |
+ basic_istream<_CharT, _Traits>& |
+ seekg(pos_type); |
+ |
+ basic_istream<_CharT, _Traits>& |
+ seekg(off_type, ios_base::seekdir); |
+ }; |
+ |
+ // 27.6.1.5 Template class basic_iostream |
+ template<typename _CharT, typename _Traits = char_traits<_CharT> > |
+ class basic_iostream |
+ : public basic_istream<_CharT, _Traits>, |
+ public basic_ostream<_CharT, _Traits> |
+ { |
+ public: |
+ typedef _CharT char_type; |
+ typedef typename _Traits::int_type int_type; |
+ typedef typename _Traits::pos_type pos_type; |
+ typedef typename _Traits::off_type off_type; |
+ typedef _Traits traits_type; |
+ |
+ explicit |
+ basic_iostream(basic_streambuf<_CharT, _Traits>* __sb); |
+ |
+ virtual |
+ ~basic_iostream(); |
+ }; |
+ |
+ typedef basic_ostream<char> ostream ; |
+ typedef basic_istream<char> istream; |
+ typedef basic_iostream<char> iostream; |
+ |
+ extern istream cin; |
+ extern ostream cout; |
+ extern ostream cerr; |
+ extern ostream clog; |
+ |
+#if defined(SWIG_WCHAR) |
+ typedef basic_ostream<wchar_t> wostream; |
+ typedef basic_istream<wchar_t> wistream; |
+ typedef basic_iostream<wchar_t> wiostream; |
+ |
+ extern wistream wcin; |
+ extern wostream wcout; |
+ extern wostream wcerr; |
+ extern wostream wclog; |
+#endif |
+ |
+ template<typename _CharT, typename _Traits = char_traits<_CharT> > |
+ std::basic_ostream<_CharT, _Traits>& |
+ endl(std::basic_ostream<_CharT, _Traits>&); |
+ |
+ template<typename _CharT, typename _Traits = char_traits<_CharT> > |
+ std::basic_ostream<_CharT, _Traits>& |
+ ends(std::basic_ostream<_CharT, _Traits>&); |
+ |
+ template<typename _CharT, typename _Traits = char_traits<_CharT> > |
+ std::basic_ostream<_CharT, _Traits>& |
+ flush(std::basic_ostream<_CharT, _Traits>&); |
+} |
+ |
+namespace std { |
+ %template(ostream) basic_ostream<char>; |
+ %template(istream) basic_istream<char>; |
+ %template(iostream) basic_iostream<char>; |
+ |
+ %template(endl) endl<char, std::char_traits<char> >; |
+ %template(ends) ends<char, std::char_traits<char> >; |
+ %template(flush) flush<char, std::char_traits<char> >; |
+ |
+#if defined(SWIG_WCHAR) |
+ %template(wostream) basic_ostream<wchar_t>; |
+ %template(wistream) basic_istream<wchar_t>; |
+ %template(wiostream) basic_iostream<wchar_t>; |
+ |
+ %template(wendl) endl<wchar_t, std::char_traits<wchar_t> >; |
+ %template(wends) ends<wchar_t, std::char_traits<wchar_t> >; |
+ %template(wflush) flush<wchar_t, std::char_traits<wchar_t> >; |
+#endif |
+} |
+ |