177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#include "stlport_prefix.h"
277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner
377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#include <string>
477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner
577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner_STLP_BEGIN_NAMESPACE
677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner
777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if defined(_STLP_USE_WIDE_INTERFACE)
877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner_STLP_MOVE_TO_PRIV_NAMESPACE
977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner
1077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerwstring __ASCIIToWide(const char *ascii) {
1177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner    size_t size = strlen(ascii);
1277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner    wchar_t* buff = new wchar_t[size+1];
1377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner    mbstowcs(buff, ascii, size);
1477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner    buff[size] = 0x00;
1577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner    wstring ret(buff);
1677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner    delete[] buff;
1777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner    return ret;
1877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner}
1977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerstring __WideToASCII(const wchar_t *wide) {
2077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner    size_t size = wcslen(wide);
2177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner    char* buff = new char[size+1];
2277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner    wcstombs(buff, wide, size);
2377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner    buff[size] = 0;
2477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner    string ret(buff);
2577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner    delete[] buff;
2677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner    return ret;
2777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner}
2877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner_STLP_MOVE_TO_STD_NAMESPACE
2977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif
3077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner
3177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if !defined (_STLP_NO_FORCE_INSTANTIATE)
3277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner
3377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnertemplate class _STLP_CLASS_DECLSPEC allocator<char>;
3477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner
3577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner_STLP_MOVE_TO_PRIV_NAMESPACE
3677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner
3777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnertemplate class _STLP_CLASS_DECLSPEC _STLP_alloc_proxy<char*, char, allocator<char> >;
3877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnertemplate class _STLP_CLASS_DECLSPEC _String_base<char, allocator<char> >;
3977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner
4077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#  if defined (_STLP_DEBUG) && !defined (__SUNPRO_CC) && !defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND)
4177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#    define basic_string _STLP_NON_DBG_NAME(str)
4277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner
4377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnertemplate class _STLP_CLASS_DECLSPEC basic_string<char, char_traits<char>, allocator<char> >;
4477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnertemplate class _STLP_CLASS_DECLSPEC __construct_checker<basic_string<char, char_traits<char>, allocator<char> > >;
4577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner
4677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#    undef basic_string
4777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#  endif
4877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner
4977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#  if defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND)
5077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#    define basic_string _STLP_NO_MEM_T_NAME(str)
5177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#  else
5277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner_STLP_MOVE_TO_STD_NAMESPACE
5377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#  endif
5477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner
5577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnertemplate class _STLP_CLASS_DECLSPEC basic_string<char, char_traits<char>, allocator<char> >;
5677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner
5777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#  if defined (basic_string)
5877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner_STLP_MOVE_TO_STD_NAMESPACE
5977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#    undef basic_string
6077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#  endif
6177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner
6277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#  if !defined (_STLP_NO_WCHAR_T)
6377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnertemplate class _STLP_CLASS_DECLSPEC allocator<wchar_t>;
6477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner
6577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner_STLP_MOVE_TO_PRIV_NAMESPACE
6677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner
6777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnertemplate class _STLP_CLASS_DECLSPEC _String_base<wchar_t, allocator<wchar_t> >;
6877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner
6977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#    if defined (_STLP_DEBUG) && !defined (__SUNPRO_CC) && !defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND)
7077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#      define basic_string _STLP_NON_DBG_NAME(str)
7177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner
7277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnertemplate class _STLP_CLASS_DECLSPEC basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> >;
7377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnertemplate class _STLP_CLASS_DECLSPEC __construct_checker<basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > >;
7477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner
7577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#      undef basic_string
7677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#    endif
7777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner
7877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#    if defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND)
7977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#      define basic_string _STLP_NO_MEM_T_NAME(str)
8077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#    else
8177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner_STLP_MOVE_TO_STD_NAMESPACE
8277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#    endif
8377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner
8477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnertemplate class _STLP_CLASS_DECLSPEC basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> >;
8577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner
8677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#    if defined (basic_string)
8777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner_STLP_MOVE_TO_STD_NAMESPACE
8877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#      undef basic_string
8977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#    endif
9077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#  endif
9177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif
9277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner
9377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner_STLP_END_NAMESPACE
94