mirror of
https://github.com/nillerusr/source-engine.git
synced 2024-12-23 06:36:54 +00:00
141 lines
3.1 KiB
OpenEdge ABL
141 lines
3.1 KiB
OpenEdge ABL
%include <std_common.i>
|
|
#if defined(SWIG_WCHAR)
|
|
%include <wchar.i>
|
|
#endif
|
|
|
|
namespace std
|
|
{
|
|
|
|
/// 21.1.2 Basis for explicit _Traits specialization
|
|
/// NB: That for any given actual character type this definition is
|
|
/// probably wrong.
|
|
template<class _CharT>
|
|
struct char_traits
|
|
{
|
|
};
|
|
|
|
|
|
/// 21.1.4 char_traits specializations
|
|
template<>
|
|
struct char_traits<char> {
|
|
typedef char char_type;
|
|
typedef int int_type;
|
|
typedef streampos pos_type;
|
|
typedef streamoff off_type;
|
|
typedef mbstate_t state_type;
|
|
|
|
static void
|
|
assign(char_type& __c1, const char_type& __c2);
|
|
|
|
static bool
|
|
eq(const char_type& __c1, const char_type& __c2);
|
|
|
|
static bool
|
|
lt(const char_type& __c1, const char_type& __c2);
|
|
|
|
static int
|
|
compare(const char_type* __s1, const char_type* __s2, size_t __n);
|
|
|
|
static size_t
|
|
length(const char_type* __s);
|
|
|
|
static const char_type*
|
|
find(const char_type* __s, size_t __n, const char_type& __a);
|
|
|
|
static char_type*
|
|
move(char_type* __s1, const char_type* __s2, size_t __n);
|
|
|
|
static char_type*
|
|
copy(char_type* __s1, const char_type* __s2, size_t __n);
|
|
|
|
static char_type*
|
|
assign(char_type* __s, size_t __n, char_type __a);
|
|
|
|
static char_type
|
|
to_char_type(const int_type& __c);
|
|
|
|
// To keep both the byte 0xff and the eof symbol 0xffffffff
|
|
// from ending up as 0xffffffff.
|
|
static int_type
|
|
to_int_type(const char_type& __c);
|
|
|
|
static bool
|
|
eq_int_type(const int_type& __c1, const int_type& __c2);
|
|
|
|
static int_type
|
|
eof() ;
|
|
|
|
static int_type
|
|
not_eof(const int_type& __c);
|
|
};
|
|
|
|
|
|
#if defined(SWIG_WCHAR)
|
|
template<>
|
|
struct char_traits<wchar_t>
|
|
{
|
|
typedef wchar_t char_type;
|
|
typedef wint_t int_type;
|
|
typedef streamoff off_type;
|
|
typedef wstreampos pos_type;
|
|
typedef mbstate_t state_type;
|
|
|
|
static void
|
|
assign(char_type& __c1, const char_type& __c2);
|
|
|
|
static bool
|
|
eq(const char_type& __c1, const char_type& __c2);
|
|
|
|
static bool
|
|
lt(const char_type& __c1, const char_type& __c2);
|
|
|
|
static int
|
|
compare(const char_type* __s1, const char_type* __s2, size_t __n);
|
|
|
|
static size_t
|
|
length(const char_type* __s);
|
|
|
|
static const char_type*
|
|
find(const char_type* __s, size_t __n, const char_type& __a);
|
|
|
|
static char_type*
|
|
move(char_type* __s1, const char_type* __s2, int_type __n);
|
|
|
|
static char_type*
|
|
copy(char_type* __s1, const char_type* __s2, size_t __n);
|
|
|
|
static char_type*
|
|
assign(char_type* __s, size_t __n, char_type __a);
|
|
|
|
static char_type
|
|
to_char_type(const int_type& __c) ;
|
|
|
|
static int_type
|
|
to_int_type(const char_type& __c) ;
|
|
|
|
static bool
|
|
eq_int_type(const int_type& __c1, const int_type& __c2);
|
|
|
|
static int_type
|
|
eof() ;
|
|
|
|
static int_type
|
|
not_eof(const int_type& __c);
|
|
};
|
|
#endif
|
|
}
|
|
|
|
namespace std {
|
|
#ifndef SWIG_STL_WRAP_TRAITS
|
|
%template() char_traits<char>;
|
|
#if defined(SWIG_WCHAR)
|
|
%template() char_traits<wchar_t>;
|
|
#endif
|
|
#else
|
|
%template(char_traits_c) char_traits<char>;
|
|
#if defined(SWIG_WCHAR)
|
|
%template(char_traits_w) char_traits<wchar_t>;
|
|
#endif
|
|
#endif
|
|
}
|