You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
339 lines
8.6 KiB
339 lines
8.6 KiB
/* |
|
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 |
|
} |
|
|
|
|